Home
Content of source file org.apache.log4j.net.SocketAppender.java.res Press <TAB> to move from one error to the next
package org.apache.log4j.net;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.helpers.LogLog;
import org.apache.log4j.spi.ErrorCode;
import org.apache.log4j.spi.LoggingEvent;
public 
class SocketAppender
 extends AppenderSkeleton 
{
   
   static public final 
   int DEFAULT_PORT
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.DEFAULT_PORT       : Interval   0 :         4560 : 4560        
   =4560
   ;
   
   static final 
   int DEFAULT_RECONNECTION_DELAY
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.DEFAULT_RECONNECTION_DELAY: Interval   0 :        30000 : 30000       
   =30000
   ;
   
   String remoteHost
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.remoteHost         : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   ;
   
   InetAddress address
   //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.address            : Interval   0 :         null null        
   //QC             :                                                                       Interval   1 :          new new         
   
   ;
   
   int port
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.port               : Interval   0 :         4560 : 4560        
   =DEFAULT_PORT
   ;
   
   ObjectOutputStream oos
   //QC   Intervals :(ObjectOutputStream) org.apache.log4j.net.SocketAppender.oos                : Interval   0 :         null null        
   //QC             :                                                                              Interval   1 :          new new         
   
   ;
   
   int reconnectionDelay
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.reconnectionDelay  : Interval   0 :        30000 : 30000       
   =DEFAULT_RECONNECTION_DELAY
   ;
   
   boolean locationInfo
   //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.locationInfo       : Interval   0 :        false false       
   =false
   ;
   
   private 
   String application
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.application        : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   ;
   
   private 
   Connector connector
   //QC   Intervals :(Connector) org.apache.log4j.net.SocketAppender.connector          : Interval   0 :         null null        
   //QC             :                                                                     Interval   1 :          new new         
   
   ;
   
   int counter
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.counter            : Interval   0 :            0 : 0           
   =0
   ;
   
   private static final 
   int RESET_FREQUENCY
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.RESET_FREQUENCY    : Interval   0 :            1 : 1           
   =1
   ;
   
   public 
   SocketAppender
   (
   )
   
   {
   }
   
   public 
   SocketAppender
   (
      InetAddress address
      ,
      int port
   )
   //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.SocketAppender.address: Interval   0 :         null null        
   //QC             :                                                                          Interval   1 :          new new         
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.SocketAppender.port: Interval   0 :  -2147483647 : 2147483647  
   
   {
      
      this.address=address;
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender
                   : Interval   0 :         null null        
      //QC             :                                                                       Interval   1 :          new new         
      //assignation
      
      this.remoteHost=address.getHostName();
      //QC-CWE476 or QCerrorNPE null pointer reference on address (see http://cwe.mitre.org/data/definitions/476.html)
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.remoteHost
        : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
      
      this.port=port;
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.port
              : Interval   0 :  -2147483647 : 2147483647  
      //assignation
      
      connect(address,port);
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.connect
1          : Interval   0 :         null null        
      //QC             :                                                                       Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.connect
2          : Interval   0 :  -2147483647 : 2147483647  
      //type of the function/method : void
   }
   
   public 
   SocketAppender
   (
      String host
      ,
      int port
   )
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.SocketAppender.host: Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.SocketAppender.port: Interval   0 :  -2147483647 : 2147483647  
   
   {
      
      this.port=port;
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.port
              : Interval   0 :  -2147483647 : 2147483647  
      //assignation
      
      this.address=getAddressByName(host);
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.SocketAppender
1   : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender
                   : Interval   0 :         null null        
      //QC             :                                                                       Interval   1 :          new new         
      //assignation
      
      this.remoteHost=host;
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.remoteHost
        : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
      
      connect(address,port);
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.connect
1          : Interval   0 :         null null        
      //QC             :                                                                       Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.connect
2          : Interval   0 :  -2147483647 : 2147483647  
      //type of the function/method : void
   }
   
   public 
   void  activateOptions
   (
   )
   
   {
      
      connect(address,port);
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.connect
1          : Interval   0 :         null null        
      //QC             :                                                                       Interval   1 :          new new         
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.connect
2          : Interval   0 :  -2147483647 : 2147483647  
      //type of the function/method : void
   }
   
   synchronized public 
   void  close
   (
   )
   
   {
      
      if (closed)
         //QC   Intervals : (boolean) org.apache.log4j.AppenderSkeleton.closed
              : Interval   0 :         true true        
         return ;
         //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.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
      
      cleanUp();
      //type of the function/method : void
   }
   
   public 
   void  cleanUp
   (
   )
   
   {
      
      if (oos!=null )
         //QC   Intervals :(ObjectOutputStream) org.apache.log4j.net.SocketAppender.cleanUp
           : Interval   0 :          new new         
         {
            
            try 
            {
               
               oos.close();
               //type of the function/method : void
            }
            catch (
               IOException e
            )
            //QC   Intervals :(IOException) org.apache.log4j.net.SocketAppender.cleanUp.e          : Interval   0 :         null null        
            //QC             :                                                                       Interval   1 :          new new         
            {
               
               LogLog.error("Could not close oos . ",e);
               //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 : Could not close oos .  : Could not close oos . 
               //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
            }
            
            oos=null ;
            //QC   Intervals :(ObjectOutputStream) org.apache.log4j.net.SocketAppender.cleanUp
           : Interval   0 :         null null        
            //assignation
         }
      
      if (connector!=null )
         //QC   Intervals :(Connector) org.apache.log4j.net.SocketAppender.cleanUp
           : Interval   0 :          new new         
         {
            
            connector.interrupted=true;
            //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.Connector.interrupted
: Interval   0 :         true true        
            //assignation
            
            connector=null ;
            //QC   Intervals :(Connector) org.apache.log4j.net.SocketAppender.cleanUp
           : Interval   0 :         null null        
            //assignation
         }
   }
   
   void  connect
   (
      InetAddress address
      ,
      int port
   )
   //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.connect.address    : Interval   0 :         null null        
   //QC             :                                                                       Interval   1 :          new new         
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.connect.port       : Interval   0 :  -2147483647 : 2147483647  
   
   {
      
      if (this.address==null )
         //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender
                   : Interval   0 :         null null        
         return ;
         //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.connect.connect.return: Interval   0 :         true true        
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender
                   : Interval   0 :          new new         
      
      try 
      {
         
         cleanUp();
         //type of the function/method : void
         
         oos=(new ObjectOutputStream(new Socket(address,port).getOutputStream()));
         //QC   Intervals :(ObjectOutputStream) org.apache.log4j.net.SocketAppender.connect
           : Interval   0 :          new new         
         //assignation
      }
      catch (
         IOException e
      )
      //QC   Intervals :(IOException) org.apache.log4j.net.SocketAppender.connect.e          : Interval   0 :         null null        
      //QC             :                                                                       Interval   1 :          new new         
      {
         String msg="Could not connect to remote log4j server at  [ "+address.getHostName()+" ]  . ";
         //QC-CWE476 or QCerrorNPE null pointer reference on address (see http://cwe.mitre.org/data/definitions/476.html)
         //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.connect.msg        : Interval   0 : Could not connect to remote log4j server at    .  : Could not connect to remote log4j server at    . 
         
         if (reconnectionDelay> 0)
            //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.reconnectionDelay
 : Interval   0 :            1 : 2147483647  
            {
               
               msg+=" We will try again later . ";
               //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.connect.msg        : Interval   0 : Could not connect to remote log4j server at    .  We will try again later .  : Could not connect to remote log4j server at    .  We will try again later . 
               //assignation
               
               fireConnector();
               //type of the function/method : void
            }
         else 
            //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.reconnectionDelay
 : Interval   0 :  -2147483647 : -1          
            //QC             :                                                                    Interval   1 :            0 : 0           
            {
               
               msg+=" We are not retrying . ";
               //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.connect.msg        : Interval   0 : Could not connect to remote log4j server at    .  We are not retrying .  : Could not connect to remote log4j server at    .  We are not retrying . 
               //assignation
               
               errorHandler.error(msg,e,ErrorCode.GENERIC_FAILURE);
               //type of the function/method : TypeInconnu
            }
         
         LogLog.error(msg);
         //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 : Could not connect to remote log4j server at    .  : Could not connect to remote log4j server at    . 
         //QC             :                                                                    Interval   1 : Could not connect to remote log4j server at    .  We will try again later .  : Could not connect to remote log4j server at    .  We will try again later . 
         //QC             :                                                                    Interval   2 : Could not connect to remote log4j server at    .  We are not retrying .  : Could not connect to remote log4j server at    .  We are not retrying . 
         //type of the function/method : void
      }
   }
   
   public 
   void  append
   (
      LoggingEvent event
   )
   //QC   Intervals :(LoggingEvent) org.apache.log4j.net.SocketAppender.append.event       : Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      
      if (event==null )
         //QC   Intervals :(LoggingEvent) org.apache.log4j.net.SocketAppender.append.event       : Interval   0 :         null null        
         return ;
         //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.append.append.return: Interval   0 :         true true        
      //QC   Intervals :(LoggingEvent) org.apache.log4j.net.SocketAppender.append.event       : Interval   0 :          new new         
      
      if (address==null )
         //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.append
            : Interval   0 :         null null        
         {
            
            errorHandler.error("No remote host is set for SocketAppender named \""+this.name+"\" . ");
            //QC   Intervals :(SAXParseException) org.xml.sax.ErrorHandler.error
1                       : Interval   0 : No remote host is set for SocketAppender named "null" .  : No remote host is set for SocketAppender named "null" . 
            //type of the function/method : void
            
            return ;
            //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.append.append.return: Interval   0 :         true true        
         }
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.append
            : Interval   0 :          new new         
      
      if (oos!=null )
         //QC   Intervals :(ObjectOutputStream) org.apache.log4j.net.SocketAppender.append
            : Interval   0 :          new new         
         {
            
            try 
            {
               
               if (locationInfo)
                  //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.locationInfo
      : Interval   0 :         true true        
                  {
                     
                     event.getLocationInformation();
                     //type of the function/method : LocationInfo
                     //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
                  }
               
               if (application!=null )
                  //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.application
       : Interval   0 :          new new         
                  {
                     
                     event.setProperty("application",application);
                     //QC   Intervals :  (String) org.apache.log4j.spi.LoggingEvent.setProperty
1        : Interval   0 :  application : application 
                     //QC   Intervals :  (String) org.apache.log4j.spi.LoggingEvent.setProperty
2        : Interval   0 :          new new         
                     //type of the function/method : void
                  }
               
               oos.writeObject(event);
               //QC   Intervals :  (Object) java.io.ObjectOutputStream.writeObject
1               : Interval   0 :          new new         
               //type of the function/method : void
               
               oos.flush();
               //type of the function/method : void
               
               if ((++counter)>=RESET_FREQUENCY)
                  //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.counter
           : Interval   0 :            3 : 3           
                  //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.RESET_FREQUENCY
   : Interval   0 :            1 : 1           
                  {
                     
                     counter=0;
                     //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.counter
           : Interval   0 :            0 : 0           
                     //assignation
                     
                     oos.reset();
                     //type of the function/method : void
                  }
            }
            catch (
               IOException e
            )
            //QC   Intervals :(IOException) org.apache.log4j.net.SocketAppender.append.e           : Interval   0 :         null null        
            //QC             :                                                                       Interval   1 :          new new         
            {
               
               oos=null ;
               //QC   Intervals :(ObjectOutputStream) org.apache.log4j.net.SocketAppender.append
            : Interval   0 :         null null        
               //assignation
               
               LogLog.warn("Detected problem with connection :  "+e);
               //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.warn
1                 : Interval   0 :            0 : 0           
               //type of the function/method : void
               
               if (reconnectionDelay> 0)
                  //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.reconnectionDelay
 : Interval   0 :            1 : 2147483647  
                  {
                     
                     fireConnector();
                     //type of the function/method : void
                  }
               else 
                  //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.reconnectionDelay
 : Interval   0 :  -2147483647 : -1          
                  //QC             :                                                                    Interval   1 :            0 : 0           
                  {
                     
                     errorHandler.error("Detected problem with connection ,  not reconnecting . ",e,ErrorCode.GENERIC_FAILURE);
                     //type of the function/method : TypeInconnu
                  }
            }
         }
   }
   
   void  fireConnector
   (
   )
   
   {
      
      if (connector==null )
         //QC   Intervals :(Connector) org.apache.log4j.net.SocketAppender.fireConnector
     : Interval   0 :         null null        
         {
            
            LogLog.debug("Starting a new connector thread . ");
            //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.debug
1                : Interval   0 : Starting a new connector thread .  : Starting a new connector thread . 
            //type of the function/method : void
            
            connector=(new Connector());
            //QC   Intervals :(Connector) org.apache.log4j.net.SocketAppender.fireConnector
     : Interval   0 :          new new         
            //assignation
            
            connector.setDaemon(true);
            //type of the function/method : TypeInconnu
            
            connector.setPriority(Thread.MIN_PRIORITY);
            //type of the function/method : TypeInconnu
            
            connector.start();
            //type of the function/method : Connector
            //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
         }
   }
   
   static 
   InetAddress getAddressByName
   //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.getAddressByName   : Interval   0 :         null null        
   //QC             :                                                                       Interval   1 :          new new         
   (
      String host
   )
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.getAddressByName.host: Interval   0 :         null null        
   //QC             :                                                                      Interval   1 :          new new         
   
   {
      
      try 
      {
         
         return InetAddress.getByName(host);
         //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.getAddressByName.return: Interval   0 :         null null        
         //QC             :                                                                           Interval   1 :          new new         
      }
      catch (
         Exception e
      )
      //QC   Intervals :(Exception) org.apache.log4j.net.SocketAppender.getAddressByName.e : Interval   0 :         null null        
      //QC             :                                                                     Interval   1 :          new new         
      {
         
         LogLog.error("Could not find address of  [ "+host+" ]  . ",e);
         //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 : Could not find address of    .  : Could not find address of    . 
         //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 null ;
         //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.getAddressByName.return: Interval   0 :         null null        
      }
   }
   
   public 
   boolean requiresLayout
   //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.requiresLayout     : Interval   0 :        false true        
   (
   )
   
   {
      
      return false;
      //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.requiresLayout.return: Interval   0 :        false false       
   }
   
   public 
   void  setRemoteHost
   (
      String host
   )
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.setRemoteHost.host : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   {
      
      address=getAddressByName(host);
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.setRemoteHost
1    : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //QC   Intervals :(InetAddress) org.apache.log4j.net.SocketAppender.setRemoteHost
     : Interval   0 :         null null        
      //QC             :                                                                       Interval   1 :          new new         
      //assignation
      
      remoteHost=host;
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.remoteHost
        : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
   }
   
   public 
   String getRemoteHost
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.getRemoteHost      : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   (
   )
   
   {
      
      return remoteHost;
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.getRemoteHost.return: Interval   0 :         null null        
      //QC             :                                                                     Interval   1 :          new new         
   }
   
   public 
   void  setPort
   (
      int port
   )
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.setPort.port       : Interval   0 :  -2147483647 : 2147483647  
   
   {
      
      this.port=port;
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.port
              : Interval   0 :  -2147483647 : 2147483647  
      //assignation
   }
   
   public 
   int getPort
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.getPort            : Interval   0 :  -2147483647 : 2147483647  
   (
   )
   
   {
      
      return port;
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.getPort.return     : Interval   0 :  -2147483647 : 2147483647  
   }
   
   public 
   void  setLocationInfo
   (
      boolean locationInfo
   )
   //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.setLocationInfo.locationInfo: Interval   0 :        false true        
   
   {
      
      this.locationInfo=locationInfo;
      //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.locationInfo
      : Interval   0 :        false true        
      //assignation
   }
   
   public 
   boolean getLocationInfo
   //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.getLocationInfo    : Interval   0 :        false true        
   (
   )
   
   {
      
      return locationInfo;
      //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.getLocationInfo.return: Interval   0 :        false true        
   }
   
   public 
   void  setApplication
   (
      String lapp
   )
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.setApplication.lapp: Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   {
      
      this.application=lapp;
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.application
       : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
   }
   
   public 
   String getApplication
   //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.getApplication     : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   (
   )
   
   {
      
      return application;
      //QC   Intervals :  (String) org.apache.log4j.net.SocketAppender.getApplication.return: Interval   0 :         null null        
      //QC             :                                                                      Interval   1 :          new new         
   }
   
   public 
   void  setReconnectionDelay
   (
      int delay
   )
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.setReconnectionDelay.delay: Interval   0 :  -2147483647 : 2147483647  
   
   {
      
      this.reconnectionDelay=delay;
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.reconnectionDelay
 : Interval   0 :  -2147483647 : 2147483647  
      //assignation
   }
   
   public 
   int getReconnectionDelay
   //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.getReconnectionDelay: Interval   0 :  -2147483647 : 2147483647  
   (
   )
   
   {
      
      return reconnectionDelay;
      //QC   Intervals :     (int) org.apache.log4j.net.SocketAppender.getReconnectionDelay.return: Interval   0 :  -2147483647 : 2147483647  
   }
   
   class Connector
    extends Thread 
   
   {
      
      boolean interrupted
      //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.Connector.interrupted: Interval   0 :        false false       
      =false
      ;
      
      public 
      void  run
      (
      )
      
      {
         Socket socket;
         //QC   Intervals :  (Socket) org.apache.log4j.net.SocketAppender.Connector.run.socket: Interval   0 :         null null        
         //QC             :                                                                     Interval   1 :          new new         
         
         while (!interrupted)
         //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.Connector.interrupted
: Interval   0 :        false false       
            {
               
               try 
               {
                  
                  sleep(reconnectionDelay);
                  //type of the function/method : TypeInconnu
                  
                  LogLog.debug("Attempting connection to "+address.getHostName());
                  //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.debug
1                : Interval   0 : Attempting connection to null : Attempting connection to null
                  //QC             :                                                                    Interval   1 : Attempting connection to new : Attempting connection to new
                  //type of the function/method : void
                  
                  socket=(new Socket(address,port));
                  //QC   Intervals :  (Socket) org.apache.log4j.net.SocketAppender.Connector.run.socket: Interval   0 :          new new         
                  //assignation
                  
                  synchronized (this)
                  {
                     
                     oos=(new ObjectOutputStream(socket.getOutputStream()));
                     //QC   Intervals :(ObjectOutputStream) org.apache.log4j.net.SocketAppender.Connector.run
     : Interval   0 :          new new         
                     //assignation
                     
                     connector=null ;
                     //QC   Intervals :(Connector) org.apache.log4j.net.SocketAppender.Connector.run
     : Interval   0 :         null null        
                     //assignation
                     
                     LogLog.debug("Connection established .  Exiting connector thread . ");
                     //type of the function/method : void
                     
                     break ;
                  }
               }
               catch (
                  InterruptedException e
               )
               //QC   Intervals :(InterruptedException) org.apache.log4j.net.SocketAppender.Connector.run.e    : Interval   0 :         null null        
               //QC             :                                                                                Interval   1 :          new new         
               {
                  
                  LogLog.debug("Connector interrupted .  Leaving loop . ");
                  //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.debug
1                : Interval   0 : Connector interrupted .  Leaving loop .  : Connector interrupted .  Leaving loop . 
                  //type of the function/method : void
                  
                  return ;
                  //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.Connector.run.run.return: Interval   0 :         true true        
               }
               //QC-CWE392 Failure de report error in status code (see http://cwe.mitre.org/data/definitions/392.html)
               catch (
                  java.net.ConnectException e
               )
               //QC   Intervals :(InterruptedException) org.apache.log4j.net.SocketAppender.Connector.run.e    : Interval   0 :         null null        
               //QC             :                                                                                Interval   1 :          new new         
               {
                  
                  LogLog.debug("Remote host "+address.getHostName()+" refused connection . ");
                  //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.debug
1                : Interval   0 : Remote host null refused connection .  : Remote host null refused connection . 
                  //type of the function/method : void
               }
               catch (
                  IOException e
               )
               //QC   Intervals :(InterruptedException) org.apache.log4j.net.SocketAppender.Connector.run.e    : Interval   0 :         null null        
               //QC             :                                                                                Interval   1 :          new new         
               {
                  
                  LogLog.debug("Could not connect to "+address.getHostName()+" .  Exception is "+e);
                  //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.debug
1                : Interval   0 : Could not connect to null0 : Could not connect to null0
                  //type of the function/method : void
               }
            }
         //QC   Intervals : (boolean) org.apache.log4j.net.SocketAppender.Connector.interrupted
: Interval   0 :         true true        
      }
      
   }
}