Home
Content of source file org.apache.log4j.helpers.PatternParser.java.res Press <TAB> to move from one error to the next
package org.apache.log4j.helpers;
import org.apache.log4j.helpers.LogLog;
import org.apache.log4j.helpers.OptionConverter;
import org.apache.log4j.helpers.AbsoluteTimeDateFormat;
import org.apache.log4j.Layout;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.spi.LocationInfo;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public 
class PatternParser
{
   
   private static final 
   char ESCAPE_CHAR
   //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.ESCAPE_CHAR     : Interval   0 :           %  :  %          
   =' % '
   ;
   
   private static final 
   int LITERAL_STATE
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LITERAL_STATE   : Interval   0 :            0 : 0           
   =0
   ;
   
   private static final 
   int CONVERTER_STATE
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.CONVERTER_STATE : Interval   0 :            1 : 1           
   =1
   ;
   
   private static final 
   int DOT_STATE
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.DOT_STATE       : Interval   0 :            3 : 3           
   =3
   ;
   
   private static final 
   int MIN_STATE
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.MIN_STATE       : Interval   0 :            4 : 4           
   =4
   ;
   
   private static final 
   int MAX_STATE
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.MAX_STATE       : Interval   0 :            5 : 5           
   =5
   ;
   
   static final 
   int FULL_LOCATION_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.FULL_LOCATION_CONVERTER: Interval   0 :         1000 : 1000        
   =1000
   ;
   
   static final 
   int METHOD_LOCATION_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.METHOD_LOCATION_CONVERTER: Interval   0 :         1001 : 1001        
   =1001
   ;
   
   static final 
   int CLASS_LOCATION_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.CLASS_LOCATION_CONVERTER: Interval   0 :         1002 : 1002        
   =1002
   ;
   
   static final 
   int LINE_LOCATION_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LINE_LOCATION_CONVERTER: Interval   0 :         1003 : 1003        
   =1003
   ;
   
   static final 
   int FILE_LOCATION_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.FILE_LOCATION_CONVERTER: Interval   0 :         1004 : 1004        
   =1004
   ;
   
   static final 
   int RELATIVE_TIME_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.RELATIVE_TIME_CONVERTER: Interval   0 :         2000 : 2000        
   =2000
   ;
   
   static final 
   int THREAD_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.THREAD_CONVERTER: Interval   0 :         2001 : 2001        
   =2001
   ;
   
   static final 
   int LEVEL_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LEVEL_CONVERTER : Interval   0 :         2002 : 2002        
   =2002
   ;
   
   static final 
   int NDC_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NDC_CONVERTER   : Interval   0 :         2003 : 2003        
   =2003
   ;
   
   static final 
   int MESSAGE_CONVERTER
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.MESSAGE_CONVERTER: Interval   0 :         2004 : 2004        
   =2004
   ;
   
   int state
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state           : Interval   0 :  -2147483647 : 2147483647  
   
   ;
   
   protected 
   StringBuffer currentLiteral
   //QC   Intervals :(StringBuffer) org.apache.log4j.helpers.PatternParser.currentLiteral  : Interval   0 :          new new         
   =new StringBuffer(32)
   ;
   
   protected 
   int patternLength
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.patternLength   : Interval   0 :  -2147483647 : 2147483647  
   
   ;
   
   protected 
   int i
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i               : Interval   0 :  -2147483647 : 2147483647  
   
   ;
   
   PatternConverter head
   //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.head            : Interval   0 :         null null        
   //QC             :                                                                            Interval   1 :          new new         
   
   ;
   
   PatternConverter tail
   //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.tail            : Interval   0 :         null null        
   //QC             :                                                                            Interval   1 :          new new         
   
   ;
   
   protected 
   FormattingInfo formattingInfo
   //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.formattingInfo  : Interval   0 :          new new         
   =new FormattingInfo()
   ;
   
   protected 
   String pattern
   //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.pattern         : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   ;
   
   public 
   PatternParser
   (
      String pattern
   )
   //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.PatternParser.pattern: Interval   0 :         null null        
   //QC             :                                                                         Interval   1 :          new new         
   
   {
      
      this.pattern=pattern;
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.pattern
        : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
      
      patternLength=pattern.length();
      //QC-CWE476 or QCerrorNPE null pointer reference on pattern (see http://cwe.mitre.org/data/definitions/476.html)
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.patternLength
  : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
      
      state=LITERAL_STATE;
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            0 : 0           
      //assignation
   }
   
   private 
   void  addToList
   (
      PatternConverter pc
   )
   //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList.pc    : Interval   0 :         null null        
   //QC             :                                                                            Interval   1 :          new new         
   
   {
      
      if (head==null )
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList
      : Interval   0 :         null null        
         {
            
            head=(tail=pc);
            //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList
      : Interval   0 :         null null        
            //QC             :                                                                            Interval   1 :          new new         
            //assignation
         }
      else 
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList
      : Interval   0 :          new new         
         {
            
            tail.next=pc;
            //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternConverter
             : Interval   0 :         null null        
            //QC             :                                                                            Interval   1 :          new new         
            //assignation
            
            tail=pc;
            //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList
      : Interval   0 :         null null        
            //QC             :                                                                            Interval   1 :          new new         
            //assignation
         }
   }
   
   protected 
   String extractOption
   //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.extractOption   : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   (
   )
   
   {
      
      if ((i<patternLength)&&(pattern.charAt(i)==' { '))
         //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (int)org.apache.log4j.helpers.PatternParser.i
         //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (int)org.apache.log4j.helpers.PatternParser.patternLength
         //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (TypeInconnu)pattern.charAt
         {
            int end=pattern.indexOf(' } ',i);
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractOption.end: Interval   0 :         null null        
            //QC             :                                                                     Interval   1 :          new new         
            
            if (end> i)
               //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (int)org.apache.log4j.helpers.PatternParser.extractOption.end
               //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (int)org.apache.log4j.helpers.PatternParser.i
               {
                  String r=pattern.substring(i+1,end);
                  //QC-CWE190 and QCerrorOVF attention overflow + on i (2147483647,2147483647) and varlocaleb37 (1,1) = 2147483648
                  //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.extractOption.r : Interval   0 :         null null        
                  //QC             :                                                                    Interval   1 :          new new         
                  
                  i=(end+1);
                  //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i
              : Interval   0 :            1 : 1           
                  //assignation
                  
                  return r;
                  //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.extractOption.return: Interval   0 :         null null        
                  //QC             :                                                                        Interval   1 :          new new         
               }
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractOption.end: Interval   0 :         null null        
            //QC             :                                                                     Interval   1 :          new new         
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i
              : Interval   0 :   2147483647 : 2147483647  
            //QC             :                                                                    Interval   1 :            1 : 1           
         }
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i
              : Interval   0 :          new new         
      //QC             :                                                                    Interval   1 :            1 : 2147483647  
      
      return null ;
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.extractOption.return: Interval   0 :         null null        
   }
   
   protected 
   int extractPrecisionOption
   //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractPrecisionOption: Interval   0 :  -2147483647 : 2147483647  
   (
   )
   
   {
      String opt=extractOption();
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.opt: Interval   0 :         null null        
      //QC             :                                                                              Interval   1 :          new new         
      int r=0;
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.r: Interval   0 :            0 : 0           
      
      if (opt!=null )
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.opt: Interval   0 :          new new         
         {
            
            try 
            {
               
               r=Integer.parseInt(opt);
               //QC   Intervals :  (String) java.lang.Integer.parseInt
1                           : Interval   0 :          new new         
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.r: Interval   0 :  -2147483647 : 2147483647  
               //assignation
               
               if (r<=0)
                  //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.r: Interval   0 :  -2147483647 : -1          
                  //QC             :                                                                            Interval   1 :            0 : 0           
                  {
                     
                     LogLog.error("Precision option  ( "+opt+" )  isn't a positive integer . ");
                     //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 : Precision option  ( new )  isn't a positive integer .  : Precision option  ( new )  isn't a positive integer . 
                     //type of the function/method : void
                     
                     r=0;
                     //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.r: Interval   0 :            0 : 0           
                     //assignation
                  }
            }
            catch (
               NumberFormatException e
            )
            //QC   Intervals :(NumberFormatException) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.e: Interval   0 :         null null        
            //QC             :                                                                                         Interval   1 :          new new         
            {
               
               LogLog.error("Category option \""+opt+"\" not a decimal integer . ",e);
               //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 : Category option "new" not a decimal integer .  : Category option "new" not a decimal integer . 
               //QC   Intervals :(Throwable) org.apache.log4j.helpers.LogLog.error
2                : Interval   0 :         null null        
               //QC             :                                                                     Interval   1 :          new new         
               //type of the function/method : void
            }
         }
      
      return r;
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.extractPrecisionOption.return: Interval   0 :            0 : 0           
      //QC             :                                                                                 Interval   1 :  -2147483647 : 2147483647  
   }
   
   public 
   PatternConverter parse
   //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.parse           : Interval   0 :         null null        
   //QC             :                                                                            Interval   1 :          new new         
   (
   )
   
   {
      char c;
      //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :            A : z           
      
      i=0;
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i
              : Interval   0 :            0 : 0           
      //assignation
      
      while (i<patternLength)
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i
              : Interval   0 :            0 : 0           
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.patternLength
  : Interval   0 :            1 : 2147483647  
         {
            
            c=pattern.charAt(i++);
            //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :         null null        
            //QC             :                                                                    Interval   1 :          new new         
            //assignation
            
            switch (state){
            case LITERAL_STATE:
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            0 : 0           
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LITERAL_STATE
  : Interval   0 :            0 : 0           
               
               if (i==patternLength)
                  //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i
              : Interval   0 :            1 : 1           
                  //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.patternLength
  : Interval   0 :            1 : 1           
                  {
                     
                     currentLiteral.append(c);
                     //type of the function/method : TypeInconnu
                     
                     continue ;
                  }
               
               if (c==ESCAPE_CHAR)
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.ESCAPE_CHAR
                  {
                     
                     switch (pattern.charAt(i)){
                     case ESCAPE_CHAR:
                        //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)pattern.charAt
                        //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.ESCAPE_CHAR
                        
                        currentLiteral.append(c);
                        //type of the function/method : TypeInconnu
                        
                        i++;
                        //type of the function/method : unknown
                        
                        break ;
                     case 'n':
                        //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)pattern.charAt
                        
                        currentLiteral.append(Layout.LINE_SEP);
                        //type of the function/method : TypeInconnu
                        
                        i++;
                        //type of the function/method : unknown
                        
                        break ;
                     default :
                        
                        if (currentLiteral.length()!=0)
                           //QC   Intervals :     (int) java.lang.StringBuffer.length
                         : Interval   0 :  -2147483647 : -1          
                           //QC             :                                                                    Interval   1 :            1 : 2147483647  
                           {
                              
                              addToList(new LiteralPatternConverter(currentLiteral.toString()));
                              //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList
1     : Interval   0 :          new new         
                              //type of the function/method : void
                           }
                        
                        currentLiteral.setLength(0);
                        //QC   Intervals :     (int) java.lang.StringBuffer.setLength
1                     : Interval   0 :            0 : 0           
                        //type of the function/method : void
                        
                        currentLiteral.append(c);
                        //type of the function/method : TypeInconnu
                        
                        state=CONVERTER_STATE;
                        //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            1 : 1           
                        //assignation
                        
                        formattingInfo.reset();
                        //type of the function/method : void
                     }
                  }
               else 
                  //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :         null null        
                  //QC             :                                                                    Interval   1 :          new new         
                  //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.ESCAPE_CHAR
    : Interval   0 :           %  :  %          
                  {
                     
                     currentLiteral.append(c);
                     //type of the function/method : TypeInconnu
                  }
               
               break ;
            case CONVERTER_STATE:
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            1 : 1           
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.CONVERTER_STATE
: Interval   0 :            1 : 1           
               
               currentLiteral.append(c);
               //type of the function/method : TypeInconnu
               
               switch (c){
               case ' - ':
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                  
                  formattingInfo.leftAlign=true;
                  //QC   Intervals : (boolean) org.apache.log4j.helpers.FormattingInfo.leftAlign
     : Interval   0 :         true true        
                  //assignation
                  
                  break ;
               case ' . ':
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                  
                  state=DOT_STATE;
                  //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            3 : 3           
                  //assignation
                  
                  break ;
               default :
                  
                  if ((c>='0')&&(c<='9'))
                     //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                     {
                        
                        formattingInfo.min=(c-'0');
                        //QC   Intervals :     (int) org.apache.log4j.helpers.FormattingInfo.min
           : Interval   0 :            0 : 0           
                        //assignation
                        
                        state=MIN_STATE;
                        //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            4 : 4           
                        //assignation
                     }
                  else 
                     //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :         null null        
                     //QC             :                                                                    Interval   1 :          new new         
                     finalizeConverter(c);
                     //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter
1: Interval   0 :         null null        
                     //QC             :                                                                       Interval   1 :          new new         
                     //type of the function/method : void
               }
               
               break ;
            case MIN_STATE:
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            4 : 4           
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.MIN_STATE
      : Interval   0 :            4 : 4           
               
               currentLiteral.append(c);
               //type of the function/method : TypeInconnu
               
               if ((c>='0')&&(c<='9'))
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                  formattingInfo.min=((formattingInfo.min*10)+(c-'0'));
                  //QC   Intervals :     (int) org.apache.log4j.helpers.FormattingInfo.min
           : Interval   0 :          -10 : -10         
                  //assignation
               else 
                  //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :         null null        
                  //QC             :                                                                    Interval   1 :          new new         
                  if (c==' . ')
                     //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                     state=DOT_STATE;
                     //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            3 : 3           
                     //assignation
                  else 
                     //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :         null null        
                     //QC             :                                                                    Interval   1 :          new new         
                     {
                        
                        finalizeConverter(c);
                        //type of the function/method : void
                     }
               
               break ;
            case DOT_STATE:
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            3 : 3           
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.DOT_STATE
      : Interval   0 :            3 : 3           
               
               currentLiteral.append(c);
               //type of the function/method : TypeInconnu
               
               if ((c>='0')&&(c<='9'))
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                  {
                     
                     formattingInfo.max=(c-'0');
                     //QC   Intervals :     (int) org.apache.log4j.helpers.FormattingInfo.max
           : Interval   0 :            0 : 0           
                     //assignation
                     
                     state=MAX_STATE;
                     //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            5 : 5           
                     //assignation
                  }
               else 
                  //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :         null null        
                  //QC             :                                                                    Interval   1 :          new new         
                  {
                     
                     LogLog.error("Error occured in position "+i+" . n Was expecting digit ,  instead got char \""+c+"\" . ");
                     //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 :            1 : 1           
                     //type of the function/method : void
                     
                     state=LITERAL_STATE;
                     //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            0 : 0           
                     //assignation
                  }
               
               break ;
            case MAX_STATE:
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            5 : 5           
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.MAX_STATE
      : Interval   0 :            5 : 5           
               
               currentLiteral.append(c);
               //type of the function/method : TypeInconnu
               
               if ((c>='0')&&(c<='9'))
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (char)org.apache.log4j.helpers.PatternParser.parse.c
                  formattingInfo.max=((formattingInfo.max*10)+(c-'0'));
                  //QC-CWE190 and QCerrorOVF attention overflow * on formattingInfo_max (2147483647,2147483647) and varlocaleb160 (10,10) = 21474836470
                  //QC   Intervals :     (int) org.apache.log4j.helpers.FormattingInfo.max
           : Interval   0 :   2147483647 : 2147483647  
                  //assignation
               else 
                  //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.parse.c         : Interval   0 :         null null        
                  //QC             :                                                                    Interval   1 :          new new         
                  {
                     
                     finalizeConverter(c);
                     //type of the function/method : void
                     
                     state=LITERAL_STATE;
                     //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            0 : 0           
                     //assignation
                  }
               
               break ;
            }
         }
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.i
              : Interval   0 :            0 : 0           
      //QC             :                                                                    Interval   1 :            1 : 1           
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.patternLength
  : Interval   0 :  -2147483647 : -1          
      //QC             :                                                                    Interval   1 :            0 : 0           
      //QC             :                                                                    Interval   2 :            1 : 1           
      
      if (currentLiteral.length()!=0)
         //QC   Intervals :     (int) java.lang.StringBuffer.length
                         : Interval   0 :  -2147483647 : -1          
         //QC             :                                                                    Interval   1 :            1 : 2147483647  
         {
            
            addToList(new LiteralPatternConverter(currentLiteral.toString()));
            //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList
1     : Interval   0 :          new new         
            //type of the function/method : void
         }
      
      return head;
      //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.parse.return    : Interval   0 :         null null        
      //QC             :                                                                            Interval   1 :          new new         
   }
   
   protected 
   void  finalizeConverter
   (
      char c
   )
   //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
   
   {
      PatternConverter pc=null ;
      //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :         null null        
      
      switch (c){
      case 'c':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new CategoryPatternConverter(formattingInfo,extractPrecisionOption()));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //QC   Intervals :     (int) java.lang.StringBuffer.setLength
1                     : Interval   0 :            0 : 0           
         //type of the function/method : void
         
         break ;
      case 'C':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new ClassNamePatternConverter(formattingInfo,extractPrecisionOption()));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'd':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         String dateFormatStr=AbsoluteTimeDateFormat.ISO8601_DATE_FORMAT;
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.finalizeConverter.dateFormatStr: Interval   0 :      ISO8601 : ISO8601     
         //QC             :                                                                                   Interval   1 :          new new         
         DateFormat df;
         //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.finalizeConverter.df: Interval   0 :         null null        
         //QC             :                                                                          Interval   1 :          new new         
         String dOpt=extractOption();
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.finalizeConverter.dOpt: Interval   0 :         null null        
         //QC             :                                                                          Interval   1 :          new new         
         
         if (dOpt!=null )
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.finalizeConverter.dOpt: Interval   0 :          new new         
            dateFormatStr=dOpt;
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.finalizeConverter.dateFormatStr: Interval   0 :          new new         
            //assignation
         
         if (dateFormatStr.equalsIgnoreCase(AbsoluteTimeDateFormat.ISO8601_DATE_FORMAT))
            //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (TypeInconnu)dateFormatStr.equalsIgnoreCase
            df=(new ISO8601DateFormat());
            //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.finalizeConverter.df: Interval   0 :          new new         
            //assignation
         else 
            //QC   Intervals :(TypeInconnu) dateFormatStr.equalsIgnoreCase                         : Interval   0 :         null null        
            //QC             :                                                                       Interval   1 :          new new         
            if (dateFormatStr.equalsIgnoreCase(AbsoluteTimeDateFormat.ABS_TIME_DATE_FORMAT))
               //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (TypeInconnu)dateFormatStr.equalsIgnoreCase
               df=(new AbsoluteTimeDateFormat());
               //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.finalizeConverter.df: Interval   0 :          new new         
               //assignation
            else 
               //QC   Intervals :(TypeInconnu) dateFormatStr.equalsIgnoreCase                         : Interval   0 :         null null        
               //QC             :                                                                       Interval   1 :          new new         
               if (dateFormatStr.equalsIgnoreCase(AbsoluteTimeDateFormat.DATE_AND_TIME_DATE_FORMAT))
                  //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (TypeInconnu)dateFormatStr.equalsIgnoreCase
                  df=(new DateTimeDateFormat());
                  //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.finalizeConverter.df: Interval   0 :          new new         
                  //assignation
               else 
                  //QC   Intervals :(TypeInconnu) dateFormatStr.equalsIgnoreCase                         : Interval   0 :         null null        
                  //QC             :                                                                       Interval   1 :          new new         
                  {
                     
                     try 
                     {
                        
                        df=(new SimpleDateFormat(dateFormatStr));
                        //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.finalizeConverter.df: Interval   0 :          new new         
                        //assignation
                     }
                     catch (
                        IllegalArgumentException e
                     )
                     //QC   Intervals :(IllegalArgumentException) org.apache.log4j.helpers.PatternParser.finalizeConverter.e: Interval   0 :         null null        
                     //QC             :                                                                                       Interval   1 :          new new         
                     {
                        
                        LogLog.error("Could not instantiate SimpleDateFormat with "+dateFormatStr,e);
                        //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 : Could not instantiate SimpleDateFormat with ISO8601 : Could not instantiate SimpleDateFormat with ISO8601
                        //QC             :                                                                    Interval   1 : Could not instantiate SimpleDateFormat with new : Could not instantiate SimpleDateFormat with new
                        //QC   Intervals :(Throwable) org.apache.log4j.helpers.LogLog.error
2                : Interval   0 :         null null        
                        //QC             :                                                                     Interval   1 :          new new         
                        //type of the function/method : void
                        
                        df=(DateFormat )OptionConverter.instantiateByClassName("org . apache . log4j . helpers . ISO8601DateFormat",DateFormat.class ,null );
                        //QC   Intervals :  (String) org.apache.log4j.helpers.OptionConverter
1             : Interval   0 : org . apache . log4j . helpers . ISO8601DateFormat : org . apache . log4j . helpers . ISO8601DateFormat
                        //QC   Intervals :   (Class) org.apache.log4j.helpers.OptionConverter
2             : Interval   0 :         null null        
                        //QC             :                                                                    Interval   1 :          new new         
                        //QC   Intervals :  (Object) org.apache.log4j.helpers.OptionConverter
3             : Interval   0 :         null null        
                        //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.finalizeConverter.df: Interval   0 :         null null        
                        //QC             :                                                                          Interval   1 :          new new         
                        //assignation
                     }
                  }
         
         pc=(new DatePatternConverter(formattingInfo,df));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'F':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new LocationPatternConverter(formattingInfo,FILE_LOCATION_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'l':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new LocationPatternConverter(formattingInfo,FULL_LOCATION_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'L':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new LocationPatternConverter(formattingInfo,LINE_LOCATION_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'm':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new BasicPatternConverter(formattingInfo,MESSAGE_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'M':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new LocationPatternConverter(formattingInfo,METHOD_LOCATION_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'p':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new BasicPatternConverter(formattingInfo,LEVEL_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'r':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new BasicPatternConverter(formattingInfo,RELATIVE_TIME_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 't':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new BasicPatternConverter(formattingInfo,THREAD_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'x':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         
         pc=(new BasicPatternConverter(formattingInfo,NDC_CONVERTER));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      case 'X':
         //QC   Intervals :    (char) org.apache.log4j.helpers.PatternParser.finalizeConverter.c: Interval   0 :            A : z           
         String xOpt=extractOption();
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.finalizeConverter.xOpt: Interval   0 :         null null        
         //QC             :                                                                          Interval   1 :          new new         
         
         pc=(new MDCPatternConverter(formattingInfo,xOpt));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
         
         break ;
      default :
         
         LogLog.error("Unexpected char  [ "+c+" ]  at position "+i+" in conversion patterrn . ");
         //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 :  -2147483647 : 2147483647  
         //type of the function/method : void
         
         pc=(new LiteralPatternConverter(currentLiteral.toString()));
         //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.finalizeConverter.pc: Interval   0 :          new new         
         //assignation
         
         currentLiteral.setLength(0);
         //type of the function/method : void
      }
      
      addConverter(pc);
      //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addConverter
1  : Interval   0 :         null null        
      //QC             :                                                                            Interval   1 :          new new         
      //type of the function/method : void
   }
   
   protected 
   void  addConverter
   (
      PatternConverter pc
   )
   //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addConverter.pc : Interval   0 :         null null        
   //QC             :                                                                            Interval   1 :          new new         
   
   {
      
      currentLiteral.setLength(0);
      //QC   Intervals :     (int) java.lang.StringBuffer.setLength
1                     : Interval   0 :            0 : 0           
      //type of the function/method : void
      
      addToList(pc);
      //QC   Intervals :(PatternConverter) org.apache.log4j.helpers.PatternParser.addToList
1     : Interval   0 :         null null        
      //QC             :                                                                            Interval   1 :          new new         
      //type of the function/method : void
      
      state=LITERAL_STATE;
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.state
          : Interval   0 :            0 : 0           
      //assignation
      
      formattingInfo.reset();
      //type of the function/method : void
   }
   
   private static 
   class BasicPatternConverter
    extends PatternConverter 
   
   {
      
      int type
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.type: Interval   0 :  -2147483647 : 2147483647  
      
      ;
      
      BasicPatternConverter
      (
         FormattingInfo formattingInfo
         ,
         int type
      )
      //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.BasicPatternConverter.formattingInfo: Interval   0 :         null null        
      //QC             :                                                                                                                    Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.BasicPatternConverter.type: Interval   0 :  -2147483647 : 2147483647  
      
      {
         
         super(formattingInfo);
         //type of the function/method : PatternConverter
         
         this.type=type;
         //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.type
: Interval   0 :  -2147483647 : 2147483647  
         //assignation
      }
      
      public 
      String convert
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert: Interval   0 :         null null        
      //QC             :                                                                                 Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert.event: Interval   0 :         null null        
      //QC             :                                                                                           Interval   1 :          new new         
      
      {
         
         switch (type){
         case RELATIVE_TIME_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.type
: Interval   0 :         2000 : 2000        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.RELATIVE_TIME_CONVERTER
: Interval   0 :         2000 : 2000        
            
            return (Long.toString(event.timeStamp-LoggingEvent.getStartTime()));
            //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
            //QC-CWE190 and QCerrorOVF attention overflow - on event_timeStamp (-9.2233720368548E+18,9.2233720368548E+18) and LoggingEvent_getStartTime (-9.2233720368548E+18,9.2233720368548E+18) = -1.844674407371E+19
            //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
            //QC-CWE190 and QCerrorOVF attention overflow - on event_timeStamp (-9.2233720368548E+18,9.2233720368548E+18) and LoggingEvent_getStartTime (-9.2233720368548E+18,9.2233720368548E+18) = -1.844674407371E+19
            //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
            //QC-CWE190 and QCerrorOVF attention overflow - on event_timeStamp (-9.2233720368548E+18,9.2233720368548E+18) and LoggingEvent_getStartTime (-9.2233720368548E+18,9.2233720368548E+18) = -1.844674407371E+19
            //QC   Intervals :    (long) java.lang.Long.toString
1                              : Interval   0 : -9.2233720368548E+18 : 9.2233720368548E+18
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                        Interval   1 :          new new         
         case THREAD_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.type
: Interval   0 :         2001 : 2001        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.THREAD_CONVERTER
: Interval   0 :         2001 : 2001        
            
            return event.getThreadName();
            //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                        Interval   1 :          new new         
         case LEVEL_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.type
: Interval   0 :         2002 : 2002        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LEVEL_CONVERTER
: Interval   0 :         2002 : 2002        
            
            return event.getLevel().toString();
            //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                        Interval   1 :          new new         
         case NDC_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.type
: Interval   0 :         2003 : 2003        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NDC_CONVERTER
  : Interval   0 :         2003 : 2003        
            
            return event.getNDC();
            //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                        Interval   1 :          new new         
         case MESSAGE_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.type
: Interval   0 :         2004 : 2004        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.MESSAGE_CONVERTER
: Interval   0 :         2004 : 2004        
            
            {
               
               return event.getRenderedMessage();
               //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
               //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert.return: Interval   0 :         null null        
               //QC             :                                                                                        Interval   1 :          new new         
            }
         default :
            
            return null ;
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.BasicPatternConverter.convert.return: Interval   0 :         null null        
         }
      }
      
   }
   
   private static 
   class LiteralPatternConverter
    extends PatternConverter 
   
   {
      
      private 
      String literal
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.literal: Interval   0 :         null null        
      //QC             :                                                                                   Interval   1 :          new new         
      
      ;
      
      LiteralPatternConverter
      (
         String value
      )
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.LiteralPatternConverter.value: Interval   0 :         null null        
      //QC             :                                                                                                         Interval   1 :          new new         
      
      {
         
         literal=value;
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.literal
: Interval   0 :         null null        
         //QC             :                                                                                    Interval   1 :          new new         
         //assignation
      }
      
      public final 
      void  format
      (
         StringBuffer sbuf
         ,
         LoggingEvent event
      )
      //QC   Intervals :(StringBuffer) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.format.sbuf: Interval   0 :         null null        
      //QC             :                                                                                           Interval   1 :          new new         
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.format.event: Interval   0 :         null null        
      //QC             :                                                                                            Interval   1 :          new new         
      
      {
         
         sbuf.append(literal);
         //QC-CWE476 or QCerrorNPE null pointer reference on sbuf (see http://cwe.mitre.org/data/definitions/476.html)
         //type of the function/method : TypeInconnu
      }
      
      public 
      String convert
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.convert: Interval   0 :         null null        
      //QC             :                                                                                   Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.convert.event: Interval   0 :         null null        
      //QC             :                                                                                             Interval   1 :          new new         
      
      {
         
         return literal;
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LiteralPatternConverter.convert.return: Interval   0 :         null null        
         //QC             :                                                                                          Interval   1 :          new new         
      }
      
   }
   
   private static 
   class DatePatternConverter
    extends PatternConverter 
   
   {
      
      private 
      DateFormat df
      //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.DatePatternConverter.df: Interval   0 :         null null        
      //QC             :                                                                             Interval   1 :          new new         
      
      ;
      
      private 
      Date date
      //QC   Intervals :    (Date) org.apache.log4j.helpers.PatternParser.DatePatternConverter.date: Interval   0 :         null null        
      //QC             :                                                                             Interval   1 :          new new         
      
      ;
      
      DatePatternConverter
      (
         FormattingInfo formattingInfo
         ,
         DateFormat df
      )
      //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.DatePatternConverter.DatePatternConverter.formattingInfo: Interval   0 :         null null        
      //QC             :                                                                                                                  Interval   1 :          new new         
      //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.DatePatternConverter.DatePatternConverter.df: Interval   0 :         null null        
      //QC             :                                                                                                  Interval   1 :          new new         
      
      {
         
         super(formattingInfo);
         //type of the function/method : PatternConverter
         
         date=(new Date());
         //QC   Intervals :    (Date) org.apache.log4j.helpers.PatternParser.DatePatternConverter.DatePatternConverter
: Interval   0 :          new new         
         //assignation
         
         this.df=df;
         //QC   Intervals :(DateFormat) org.apache.log4j.helpers.PatternParser.DatePatternConverter
: Interval   0 :         null null        
         //QC             :                                                                           Interval   1 :          new new         
         //assignation
      }
      
      public 
      String convert
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.DatePatternConverter.convert: Interval   0 :         null null        
      //QC             :                                                                                Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.DatePatternConverter.convert.event: Interval   0 :         null null        
      //QC             :                                                                                          Interval   1 :          new new         
      
      {
         
         date.setTime(event.timeStamp);
         //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
         //QC   Intervals :    (long) java.util.Date.setTime
1                               : Interval   0 : -9.2233720368548E+18 : 9.2233720368548E+18
         //type of the function/method : void
         String converted=null ;
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.DatePatternConverter.convert.converted: Interval   0 :         null null        
         
         try 
         {
            
            converted=df.format(date);
            //QC   Intervals :    (Date) java.text.DateFormat.format
1                          : Interval   0 :         null null        
            //QC             :                                                                    Interval   1 :          new new         
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.DatePatternConverter.convert.converted: Interval   0 :         null null        
            //QC             :                                                                                          Interval   1 :          new new         
            //assignation
         }
         catch (
            Exception ex
         )
         //QC   Intervals :(Exception) org.apache.log4j.helpers.PatternParser.DatePatternConverter.convert.ex: Interval   0 :         null null        
         //QC             :                                                                                    Interval   1 :          new new         
         {
            
            LogLog.error("Error occured while converting date . ",ex);
            //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 : Error occured while converting date .  : Error occured while converting date . 
            //QC   Intervals :(Throwable) org.apache.log4j.helpers.LogLog.error
2                : Interval   0 :         null null        
            //QC             :                                                                     Interval   1 :          new new         
            //type of the function/method : void
         }
         
         return converted;
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.DatePatternConverter.convert.return: Interval   0 :         null null        
         //QC             :                                                                                       Interval   1 :          new new         
      }
      
   }
   
   private static 
   class MDCPatternConverter
    extends PatternConverter 
   
   {
      
      private 
      String key
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.key: Interval   0 :         null null        
      //QC             :                                                                           Interval   1 :          new new         
      
      ;
      
      MDCPatternConverter
      (
         FormattingInfo formattingInfo
         ,
         String key
      )
      //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.MDCPatternConverter.formattingInfo: Interval   0 :         null null        
      //QC             :                                                                                                                Interval   1 :          new new         
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.MDCPatternConverter.key: Interval   0 :         null null        
      //QC             :                                                                                               Interval   1 :          new new         
      
      {
         
         super(formattingInfo);
         //type of the function/method : PatternConverter
         
         this.key=key;
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.key
: Interval   0 :         null null        
         //QC             :                                                                            Interval   1 :          new new         
         //assignation
      }
      
      public 
      String convert
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert: Interval   0 :         null null        
      //QC             :                                                                               Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert.event: Interval   0 :         null null        
      //QC             :                                                                                         Interval   1 :          new new         
      
      {
         Object val=event.getMDC(key);
         //QC   Intervals :  (String) org.apache.log4j.spi.LoggingEvent
1                    : Interval   0 :         null null        
         //QC             :                                                                    Interval   1 :          new new         
         //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
         //QC   Intervals :  (Object) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert.val: Interval   0 :         null null        
         //QC             :                                                                                   Interval   1 :          new new         
         
         if (val==null )
            //QC   Intervals :  (Object) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert.val: Interval   0 :         null null        
            {
               
               return null ;
               //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert.return: Interval   0 :         null null        
            }
         else 
            //QC   Intervals :  (Object) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert.val: Interval   0 :          new new         
            {
               
               return val.toString();
               //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert.return: Interval   0 :         null null        
               //QC             :                                                                                      Interval   1 :          new new         
            }
         //QC   Intervals :  (Object) org.apache.log4j.helpers.PatternParser.MDCPatternConverter.convert.val: Interval   0 :          new new         
      }
      
   }
   
   private 
   class LocationPatternConverter
    extends PatternConverter 
   
   {
      
      int type
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.type: Interval   0 :  -2147483647 : 2147483647  
      
      ;
      
      LocationPatternConverter
      (
         FormattingInfo formattingInfo
         ,
         int type
      )
      //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.LocationPatternConverter.formattingInfo: Interval   0 :         null null        
      //QC             :                                                                                                                          Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.LocationPatternConverter.type: Interval   0 :  -2147483647 : 2147483647  
      
      {
         
         super(formattingInfo);
         //type of the function/method : PatternConverter
         
         this.type=type;
         //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.type
: Interval   0 :  -2147483647 : 2147483647  
         //assignation
      }
      
      public 
      String convert
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert: Interval   0 :         null null        
      //QC             :                                                                                    Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert.event: Interval   0 :         null null        
      //QC             :                                                                                              Interval   1 :          new new         
      
      {
         LocationInfo locationInfo=event.getLocationInformation();
         //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
         //QC   Intervals :(LocationInfo) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert.locationInfo: Interval   0 :         null null        
         //QC             :                                                                                                     Interval   1 :          new new         
         
         switch (type){
         case FULL_LOCATION_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.type
: Interval   0 :         1000 : 1000        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.FULL_LOCATION_CONVERTER
: Interval   0 :         1000 : 1000        
            
            return locationInfo.fullInfo;
            //QC-CWE476 or QCerrorNPE null pointer reference on locationInfo (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                           Interval   1 :          new new         
         case METHOD_LOCATION_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.type
: Interval   0 :         1001 : 1001        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.METHOD_LOCATION_CONVERTER
: Interval   0 :         1001 : 1001        
            
            return locationInfo.getMethodName();
            //QC-CWE476 or QCerrorNPE null pointer reference on locationInfo (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                           Interval   1 :          new new         
         case LINE_LOCATION_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.type
: Interval   0 :         1003 : 1003        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LINE_LOCATION_CONVERTER
: Interval   0 :         1003 : 1003        
            
            return locationInfo.getLineNumber();
            //QC-CWE476 or QCerrorNPE null pointer reference on locationInfo (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                           Interval   1 :          new new         
         case FILE_LOCATION_CONVERTER:
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.type
: Interval   0 :         1004 : 1004        
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.FILE_LOCATION_CONVERTER
: Interval   0 :         1004 : 1004        
            
            return locationInfo.getFileName();
            //QC-CWE476 or QCerrorNPE null pointer reference on locationInfo (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                           Interval   1 :          new new         
         default :
            
            return null ;
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.LocationPatternConverter.convert.return: Interval   0 :         null null        
         }
      }
      
   }
   
   private static abstract 
   class NamedPatternConverter
    extends PatternConverter 
   
   {
      
      int precision
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.precision: Interval   0 :  -2147483647 : 2147483647  
      
      ;
      
      NamedPatternConverter
      (
         FormattingInfo formattingInfo
         ,
         int precision
      )
      //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.NamedPatternConverter.formattingInfo: Interval   0 :         null null        
      //QC             :                                                                                                                    Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.NamedPatternConverter.precision: Interval   0 :  -2147483647 : 2147483647  
      
      {
         
         super(formattingInfo);
         //type of the function/method : PatternConverter
         
         this.precision=precision;
         //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.precision
: Interval   0 :  -2147483647 : 2147483647  
         //assignation
      }
      
      abstract 
      String getFullyQualifiedName
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.getFullyQualifiedName: Interval   0 :         null null        
      //QC             :                                                                                               Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.getFullyQualifiedName.event: Interval   0 :         null null        
      //QC             :                                                                                                         Interval   1 :          new new         
      
      ;
      
      public 
      String convert
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert: Interval   0 :         null null        
      //QC             :                                                                                 Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.event: Interval   0 :         null null        
      //QC             :                                                                                           Interval   1 :          new new         
      
      {
         String n=getFullyQualifiedName(event);
         //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.getFullyQualifiedName
1: Interval   0 :         null null        
         //QC             :                                                                                                     Interval   1 :          new new         
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.n: Interval   0 :         null null        
         //QC             :                                                                                   Interval   1 :          new new         
         
         if (precision<=0)
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.precision
: Interval   0 :  -2147483647 : -1          
            //QC             :                                                                                    Interval   1 :            0 : 0           
            return n;
            //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.return: Interval   0 :         null null        
            //QC             :                                                                                        Interval   1 :          new new         
         else 
            //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.precision
: Interval   0 :            1 : 2147483647  
            {
               int len=n.length();
               //QC-CWE476 or QCerrorNPE null pointer reference on n (see http://cwe.mitre.org/data/definitions/476.html)
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.len: Interval   0 :         null null        
               //QC             :                                                                                     Interval   1 :          new new         
               int end=len-1;
               //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.end: Interval   0 :           -1 : -1          
               
               for (
                  int i
                  //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.i: Interval   0 :            1 : 2147483647  
                  =precision;
                  i> 0;
                  i--
                  
               )
                  {
                     
                     end=n.lastIndexOf(' . ',(end-1));
                     //QC-CWE476 or QCerrorNPE null pointer reference on n (see http://cwe.mitre.org/data/definitions/476.html)
                     //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.end: Interval   0 :         null null        
                     //QC             :                                                                                     Interval   1 :          new new         
                     //assignation
                     
                     if (end==(-1))
                        //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (int)org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.end
                        return n;
                        //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.return: Interval   0 :         null null        
                        //QC             :                                                                                        Interval   1 :          new new         
                     //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.end: Interval   0 :         null null        
                     //QC             :                                                                                     Interval   1 :          new new         
                  }
               
               return n.substring(end+1,len);
               //QC-CWE476 or QCerrorNPE null pointer reference on n (see http://cwe.mitre.org/data/definitions/476.html)
               //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.NamedPatternConverter.convert.return: Interval   0 :         null null        
               //QC             :                                                                                        Interval   1 :          new new         
            }
      }
      
   }
   
   private 
   class ClassNamePatternConverter
    extends NamedPatternConverter 
   
   {
      
      ClassNamePatternConverter
      (
         FormattingInfo formattingInfo
         ,
         int precision
      )
      //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.ClassNamePatternConverter.ClassNamePatternConverter.formattingInfo: Interval   0 :         null null        
      //QC             :                                                                                                                            Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.ClassNamePatternConverter.ClassNamePatternConverter.precision: Interval   0 :  -2147483647 : 2147483647  
      
      {
         
         super(formattingInfo,precision);
         //type of the function/method : NamedPatternConverter
      }
      
      String getFullyQualifiedName
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.ClassNamePatternConverter.getFullyQualifiedName: Interval   0 :         null null        
      //QC             :                                                                                                   Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.ClassNamePatternConverter.getFullyQualifiedName.event: Interval   0 :         null null        
      //QC             :                                                                                                             Interval   1 :          new new         
      
      {
         
         return event.getLocationInformation().getClassName();
         //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.ClassNamePatternConverter.getFullyQualifiedName.return: Interval   0 :         null null        
         //QC             :                                                                                                          Interval   1 :          new new         
      }
      
   }
   
   private 
   class CategoryPatternConverter
    extends NamedPatternConverter 
   
   {
      
      CategoryPatternConverter
      (
         FormattingInfo formattingInfo
         ,
         int precision
      )
      //QC   Intervals :(FormattingInfo) org.apache.log4j.helpers.PatternParser.CategoryPatternConverter.CategoryPatternConverter.formattingInfo: Interval   0 :         null null        
      //QC             :                                                                                                                          Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.helpers.PatternParser.CategoryPatternConverter.CategoryPatternConverter.precision: Interval   0 :  -2147483647 : 2147483647  
      
      {
         
         super(formattingInfo,precision);
         //type of the function/method : NamedPatternConverter
      }
      
      String getFullyQualifiedName
      //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.CategoryPatternConverter.getFullyQualifiedName: Interval   0 :         null null        
      //QC             :                                                                                                  Interval   1 :          new new         
      (
         LoggingEvent event
      )
      //QC   Intervals :(LoggingEvent) org.apache.log4j.helpers.PatternParser.CategoryPatternConverter.getFullyQualifiedName.event: Interval   0 :         null null        
      //QC             :                                                                                                            Interval   1 :          new new         
      
      {
         
         return event.getLoggerName();
         //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
         //QC   Intervals :  (String) org.apache.log4j.helpers.PatternParser.CategoryPatternConverter.getFullyQualifiedName.return: Interval   0 :         null null        
         //QC             :                                                                                                         Interval   1 :          new new         
      }
      
   }
}