Home
Content of source file org.apache.log4j.WriterAppender1.java.res Press <TAB> to move from one error to the next
package org.apache.log4j;
import java.io.IOException;
import java.io.Writer;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import org.apache.log4j.spi.ErrorHandler;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.helpers.QuietWriter;
import org.apache.log4j.helpers.LogLog;
public 
class WriterAppender
 extends AppenderSkeleton 
{
   
   protected 
   boolean immediateFlush
   //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.immediateFlush         : Interval   0 :         true true        
   =true
   ;
   
   protected 
   String encoding
   //QC   Intervals :  (String) org.apache.log4j.WriterAppender.encoding               : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   ;
   
   protected 
   QuietWriter qw
   //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender.qw                     : Interval   0 :         null null        
   //QC             :                                                                       Interval   1 :          new new         
   
   ;
   
   public 
   WriterAppender
   (
   )
   
   {
   }
   
   public 
   WriterAppender
   (
      Layout layout
      ,
      OutputStream os
   )
   //QC   Intervals :  (Layout) org.apache.log4j.WriterAppender.WriterAppender.layout  : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   //QC   Intervals :(OutputStream) org.apache.log4j.WriterAppender.WriterAppender.os      : Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      
      this(layout,new OutputStreamWriter(os));
      //type of the function/method : WriterAppender
      //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
   }
   
   public 
   WriterAppender
   (
      Layout layout
      ,
      Writer writer
   )
   //QC   Intervals :  (Layout) org.apache.log4j.WriterAppender.WriterAppender.layout  : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   //QC   Intervals :  (Writer) org.apache.log4j.WriterAppender.WriterAppender.writer  : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   {
      
      this.layout=layout;
      //QC   Intervals :    (void) java.awt.Component.layout
                             : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
      
      this.setWriter(writer);
      //type of the function/method : void;Writer
      //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
   }
   
   public 
   void  setImmediateFlush
   (
      boolean value
   )
   //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.setImmediateFlush.value: Interval   0 :        false true        
   
   {
      
      immediateFlush=value;
      //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.immediateFlush
        : Interval   0 :        false true        
      //assignation
   }
   
   public 
   boolean getImmediateFlush
   //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.getImmediateFlush      : Interval   0 :        false true        
   (
   )
   
   {
      
      return immediateFlush;
      //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.getImmediateFlush.return: Interval   0 :        false true        
   }
   
   public 
   void  activateOptions
   (
   )
   
   {
   }
   
   public 
   void  append
   (
      LoggingEvent event
   )
   //QC   Intervals :(LoggingEvent) org.apache.log4j.WriterAppender.append.event           : Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      
      if (!checkEntryConditions())
         //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.checkEntryConditions
  : Interval   0 :        false false       
         {
            
            return ;
            //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.append.append.return   : Interval   0 :         true true        
         }
      //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.checkEntryConditions
  : Interval   0 :         true true        
      
      subAppend(event);
      //QC   Intervals :(LoggingEvent) org.apache.log4j.WriterAppender.subAppend
1            : Interval   0 :         null null        
      //QC             :                                                                        Interval   1 :          new new         
      //type of the function/method : void
   }
   
   protected 
   boolean checkEntryConditions
   //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.checkEntryConditions   : Interval   0 :        false true        
   (
   )
   
   {
      
      if (this.closed)
         //QC   Intervals : (boolean) org.apache.log4j.AppenderSkeleton.closed
              : Interval   0 :         true true        
         {
            
            LogLog.warn("Not allowed to write to a closed appender . ");
            //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.warn
1                 : Interval   0 : Not allowed to write to a closed appender .  : Not allowed to write to a closed appender . 
            //type of the function/method : void
            
            return false;
            //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.checkEntryConditions.return: Interval   0 :        false false       
         }
      //QC   Intervals : (boolean) org.apache.log4j.AppenderSkeleton.closed
              : Interval   0 :        false false       
      
      if (this.qw==null )
         //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender
                       : Interval   0 :         null null        
         {
            
            errorHandler.error("No output stream or file set for the appender named  [ "+name+" ]  . ");
            //QC   Intervals :(SAXParseException) org.xml.sax.ErrorHandler.error
1                       : Interval   0 : No output stream or file set for the appender named    .  : No output stream or file set for the appender named    . 
            //type of the function/method : void
            
            return false;
            //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.checkEntryConditions.return: Interval   0 :        false false       
         }
      //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender
                       : Interval   0 :          new new         
      
      if (this.layout==null )
         //QC   Intervals :    (void) java.awt.Component.layout
                             : Interval   0 :         null null        
         {
            
            errorHandler.error("No layout set for the appender named  [ "+name+" ]  . ");
            //QC   Intervals :(SAXParseException) org.xml.sax.ErrorHandler.error
1                       : Interval   0 : No layout set for the appender named    .  : No layout set for the appender named    . 
            //type of the function/method : void
            
            return false;
            //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.checkEntryConditions.return: Interval   0 :        false false       
         }
      //QC   Intervals :    (void) java.awt.Component.layout
                             : Interval   0 :          new new         
      
      return true;
      //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.checkEntryConditions.return: Interval   0 :         true true        
   }
   
   public synchronized 
   void  close
   (
   )
   
   {
      
      if (this.closed)
         //QC   Intervals : (boolean) org.apache.log4j.AppenderSkeleton.closed
              : Interval   0 :         true true        
         return ;
         //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.close.close.return     : Interval   0 :         true true        
      //QC   Intervals : (boolean) org.apache.log4j.AppenderSkeleton.closed
              : Interval   0 :        false false       
      
      this.closed=true;
      //QC   Intervals : (boolean) org.apache.log4j.AppenderSkeleton.closed
              : Interval   0 :         true true        
      //assignation
      
      writeFooter();
      //type of the function/method : void
      
      reset();
      //type of the function/method : void
   }
   
   protected 
   void  closeWriter
   (
   )
   
   {
      
      if (qw!=null )
         //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender.closeWriter
           : Interval   0 :          new new         
         {
            
            try 
            {
               
               qw.close();
               //type of the function/method : void
            }
            catch (
               IOException e
            )
            //QC   Intervals :(IOException) org.apache.log4j.WriterAppender.closeWriter.e          : Interval   0 :         null null        
            //QC             :                                                                       Interval   1 :          new new         
            {
               
               LogLog.error("Could not close "+qw,e);
               //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 :            0 : 0           
               //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
            }
         }
   }
   
   protected 
   OutputStreamWriter createWriter
   //QC   Intervals :(OutputStreamWriter) org.apache.log4j.WriterAppender.createWriter           : Interval   0 :         null null        
   //QC             :                                                                              Interval   1 :          new new         
   (
      OutputStream os
   )
   //QC   Intervals :(OutputStream) org.apache.log4j.WriterAppender.createWriter.os        : Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      OutputStreamWriter retval=null ;
      //QC   Intervals :(OutputStreamWriter) org.apache.log4j.WriterAppender.createWriter.retval    : Interval   0 :         null null        
      String enc=getEncoding();
      //QC   Intervals :  (String) org.apache.log4j.WriterAppender.createWriter.enc       : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      
      if (enc!=null )
         //QC   Intervals :  (String) org.apache.log4j.WriterAppender.createWriter.enc       : Interval   0 :          new new         
         {
            
            try 
            {
               
               retval=(new OutputStreamWriter(os,enc));
               //QC   Intervals :(OutputStreamWriter) org.apache.log4j.WriterAppender.createWriter.retval    : Interval   0 :          new new         
               //assignation
            }
            catch (
               IOException e
            )
            //QC   Intervals :(IOException) org.apache.log4j.WriterAppender.createWriter.e         : Interval   0 :         null null        
            //QC             :                                                                       Interval   1 :          new new         
            {
               
               LogLog.warn("Error initializing output writer . ");
               //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.warn
1                 : Interval   0 : Error initializing output writer .  : Error initializing output writer . 
               //type of the function/method : void
               
               LogLog.warn("Unsupported encoding ? ");
               //type of the function/method : void
            }
         }
      
      if (retval==null )
         //QC   Intervals :(OutputStreamWriter) org.apache.log4j.WriterAppender.createWriter.retval    : Interval   0 :         null null        
         {
            
            retval=(new OutputStreamWriter(os));
            //QC   Intervals :(OutputStreamWriter) org.apache.log4j.WriterAppender.createWriter.retval    : Interval   0 :          new new         
            //assignation
         }
      
      return retval;
      //QC   Intervals :(OutputStreamWriter) org.apache.log4j.WriterAppender.createWriter.return    : Interval   0 :         null null        
      //QC             :                                                                              Interval   1 :          new new         
   }
   
   public 
   String getEncoding
   //QC   Intervals :  (String) org.apache.log4j.WriterAppender.getEncoding            : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   (
   )
   
   {
      
      return encoding;
      //QC   Intervals :  (String) org.apache.log4j.WriterAppender.getEncoding.return     : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
   }
   
   public 
   void  setEncoding
   (
      String value
   )
   //QC   Intervals :  (String) org.apache.log4j.WriterAppender.setEncoding.value      : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   {
      
      encoding=value;
      //QC   Intervals :  (String) org.apache.log4j.WriterAppender.encoding
              : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
   }
   
   public synchronized 
   void  setErrorHandler
   (
      ErrorHandler eh
   )
   //QC   Intervals :(ErrorHandler) org.apache.log4j.WriterAppender.setErrorHandler.eh     : Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      
      if (eh==null )
         //QC   Intervals :(ErrorHandler) org.apache.log4j.WriterAppender.setErrorHandler.eh     : Interval   0 :         null null        
         {
            
            LogLog.warn("You have tried to set null error - handler . ");
            //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.warn
1                 : Interval   0 : You have tried to set null error - handler .  : You have tried to set null error - handler . 
            //type of the function/method : void
         }
      else 
         //QC   Intervals :(ErrorHandler) org.apache.log4j.WriterAppender.setErrorHandler.eh     : Interval   0 :          new new         
         {
            
            this.errorHandler=eh;
            //QC   Intervals :(ErrorHandler) org.apache.log4j.WriterAppender
                       : Interval   0 :          new new         
            //assignation
            
            if (this.qw!=null )
               //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender
                       : Interval   0 :          new new         
               {
                  
                  this.qw.setErrorHandler(eh);
                  //type of the function/method : void;ErrorHandler
                  //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
               }
         }
   }
   
   public synchronized 
   void  setWriter
   (
      Writer writer
   )
   //QC   Intervals :  (Writer) org.apache.log4j.WriterAppender.setWriter.writer       : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   {
      
      reset();
      //type of the function/method : void
      
      this.qw=(new QuietWriter(writer,errorHandler));
      //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender
                       : Interval   0 :          new new         
      //assignation
      
      writeHeader();
      //type of the function/method : void
   }
   
   protected 
   void  subAppend
   (
      LoggingEvent event
   )
   //QC   Intervals :(LoggingEvent) org.apache.log4j.WriterAppender.subAppend.event        : Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      
      this.qw.write(this.layout.format(event));
      //type of the function/method : void;String
      //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
      
      if (layout.ignoresThrowable())
         //QC-CWE570 and QCerrorCNT Condition NEVER true : no interval for variable (void)java.awt.Component.layout
         {
            String[]  s=event.getThrowableStrRep();
            //QC-CWE476 or QCerrorNPE null pointer reference on event (see http://cwe.mitre.org/data/definitions/476.html)
            //QC   Intervals :(String[]) org.apache.log4j.WriterAppender.subAppend.s            : Interval   0 :         null null        
            //QC             :                                                                    Interval   1 :          new new         
            
            if (s!=null )
               //QC   Intervals :(String[]) org.apache.log4j.WriterAppender.subAppend.s            : Interval   0 :          new new         
               {
                  int len=s.length;
                  //QC   Intervals :     (int) org.apache.log4j.WriterAppender.subAppend.len          : Interval   0 :  -2147483647 : 2147483647  
                  
                  for (
                     int i
                     //QC   Intervals :     (int) org.apache.log4j.WriterAppender.subAppend.i            : Interval   0 :            0 : 0           
                     =0;
                     i<len;
                     i++
                     
                  )
                     {
                        
                        this.qw.write(s[i] );
                        //type of the function/method : void;String
                        //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
                        
                        this.qw.write(Layout.LINE_SEP);
                        //type of the function/method : void;String
                        //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
                     }
               }
         }
      
      if (this.immediateFlush)
         //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.immediateFlush
        : Interval   0 :         true true        
         {
            
            this.qw.flush();
            //type of the function/method : void
         }
   }
   
   public 
   boolean requiresLayout
   //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.requiresLayout         : Interval   0 :        false true        
   (
   )
   
   {
      
      return true;
      //QC   Intervals : (boolean) org.apache.log4j.WriterAppender.requiresLayout.return  : Interval   0 :         true true        
   }
   
   protected 
   void  reset
   (
   )
   
   {
      
      closeWriter();
      //type of the function/method : void
      
      this.qw=null ;
      //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender
                       : Interval   0 :         null null        
      //assignation
   }
   
   protected 
   void  writeFooter
   (
   )
   
   {
      
      if (layout!=null )
         //QC   Intervals :    (void) java.awt.Component.layout
                             : Interval   0 :          new new         
         {
            String f=layout.getFooter();
            //QC   Intervals :  (String) org.apache.log4j.WriterAppender.writeFooter.f          : Interval   0 :         null null        
            //QC             :                                                                    Interval   1 :          new new         
            
            if ((f!=null )&&(this.qw!=null ))
               //QC   Intervals :  (String) org.apache.log4j.WriterAppender.writeFooter.f          : Interval   0 :          new new         
               //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender
                       : Interval   0 :          new new         
               {
                  
                  this.qw.write(f);
                  //type of the function/method : void;String
                  //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
                  
                  this.qw.flush();
                  //type of the function/method : void
               }
         }
   }
   
   protected 
   void  writeHeader
   (
   )
   
   {
      
      if (layout!=null )
         //QC   Intervals :    (void) java.awt.Component.layout
                             : Interval   0 :          new new         
         {
            String h=layout.getHeader();
            //QC   Intervals :  (String) org.apache.log4j.WriterAppender.writeHeader.h          : Interval   0 :         null null        
            //QC             :                                                                    Interval   1 :          new new         
            
            if ((h!=null )&&(this.qw!=null ))
               //QC   Intervals :  (String) org.apache.log4j.WriterAppender.writeHeader.h          : Interval   0 :          new new         
               //QC   Intervals :(QuietWriter) org.apache.log4j.WriterAppender
                       : Interval   0 :          new new         
               this.qw.write(h);
               //type of the function/method : void;String
               //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
         }
   }
   
}