You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2002/05/09 21:53:38 UTC

cvs commit: jakarta-log4j/src/java/org/apache/log4j/performance/xml logging1000.xml

ceki        02/05/09 12:53:38

  Modified:    src/java/org/apache/log4j/net SocketNode.java
                        TelnetAppender.java
               src/java/org/apache/log4j/performance logging
               src/java/org/apache/log4j/performance/xml logging1000.xml
  Log:
  Fixed bug #8527. A closed TelnetAppender would continue waiting
  for connections even if its ServerSocket was closed. This caused
  massive output on the console.
  
  Revision  Changes    Path
  1.20      +1 -1      jakarta-log4j/src/java/org/apache/log4j/net/SocketNode.java
  
  Index: SocketNode.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/net/SocketNode.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- SocketNode.java	9 May 2002 12:42:43 -0000	1.19
  +++ SocketNode.java	9 May 2002 19:53:37 -0000	1.20
  @@ -45,7 +45,7 @@
       this.hierarchy = hierarchy;
       try {
         ois = new ObjectInputStream(
  -                           new BufferedInputStream(socket.getInputStream()));
  +                         new BufferedInputStream(socket.getInputStream()));
       }
       catch(Exception e) {
         logger.error("Could not open ObjectInputStream to "+socket, e);
  
  
  
  1.3       +18 -17    jakarta-log4j/src/java/org/apache/log4j/net/TelnetAppender.java
  
  Index: TelnetAppender.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/net/TelnetAppender.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TelnetAppender.java	24 Apr 2002 01:16:12 -0000	1.2
  +++ TelnetAppender.java	9 May 2002 19:53:37 -0000	1.3
  @@ -13,6 +13,7 @@
   import org.apache.log4j.Layout;
   import org.apache.log4j.spi.LoggingEvent;
   import org.apache.log4j.AppenderSkeleton;
  +import org.apache.log4j.helpers.LogLog;
   
   /**
     <p>The TelnetAppender is a log4j appender that specializes in
  @@ -47,7 +48,9 @@
     private SocketHandler sh;
     private int port = 23;
   
  -  /** this appender requires a layout to format the text to the attached client(s). */
  +  /** 
  +      This appender requires a layout to format the text to the
  +      attached client(s). */
     public boolean requiresLayout() {
       return true;
     }
  @@ -103,6 +106,7 @@
         asynchronously. */
     protected class SocketHandler extends Thread {
   
  +    private boolean done = false;
       private Vector writers = new Vector();
       private Vector connections = new Vector();
       private ServerSocket serverSocket;
  @@ -113,15 +117,14 @@
         for(Enumeration e = connections.elements();e.hasMoreElements();) {
           try {
             ((Socket)e.nextElement()).close();
  -        }
  -        catch(Exception ex) {
  +        } catch(Exception ex) {
           }
         }
         try {
           serverSocket.close();
  +      } catch(Exception ex) {
         }
  -      catch(Exception ex) {
  -      }
  +      done = true;
       }
   
       /** sends a message to each of the clients in telnet-friendly output. */
  @@ -132,37 +135,35 @@
           PrintWriter writer = (PrintWriter)e.nextElement();
           writer.print(message);
           if(writer.checkError()) {
  -
             // The client has closed the connection, remove it from our list:
  -
             connections.remove(sock);
             writers.remove(writer);
  -
           }
         }
       }
   
  -    /** continually accepts client connections.  Client connections
  -        are refused when MAX_CONNECTIONS is reached. */
  +    /** 
  +	Continually accepts client connections.  Client connections
  +        are refused when MAX_CONNECTIONS is reached. 
  +    */
       public void run() {
  -      while(true) {
  +      while(!done) {
           try {
             Socket newClient = serverSocket.accept();
             PrintWriter pw = new PrintWriter(newClient.getOutputStream());
             if(connections.size() < MAX_CONNECTIONS) {
               connections.addElement(newClient);
               writers.addElement(pw);
  -            pw.print("TelnetAppender v1.0 (" + connections.size() + " active connections)\r\n\r\n");
  +            pw.print("TelnetAppender v1.0 (" + connections.size() 
  +		     + " active connections)\r\n\r\n");
               pw.flush();
  -          }
  -          else {
  +          } else {
               pw.print("Too many connections.\r\n");
               pw.flush();
               newClient.close();
             }
  -        }
  -        catch(Exception e) {
  -          e.printStackTrace();
  +        } catch(Exception e) {
  +          LogLog.error("Encountered error while in SocketHandler loop.", e);
           }
         }
       }
  
  
  
  1.4       +10 -1     jakarta-log4j/src/java/org/apache/log4j/performance/logging
  
  Index: logging
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/performance/logging,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- logging	9 May 2002 15:43:44 -0000	1.3
  +++ logging	9 May 2002 19:53:37 -0000	1.4
  @@ -307,9 +307,18 @@
   # ===============================================================
   TEST=1000
   #RL=1000
  -RL=20000
  +RL=10000
   if [ $TEST -ge $start ]; then
      java org.apache.log4j.performance.Logging xml/logging$TEST.xml $RL 100 100
  +   #multiRun 4 "SocketAppender" $SHORTRUN $DELAY
  +fi
  +
  +
  +TEST=1001
  +#RL=1000
  +RL=30000
  +if [ $TEST -ge $start ]; then
  +   java org.apache.log4j.performance.Logging xml/logging$TEST.xml $RL 
      #multiRun 4 "SocketAppender" $SHORTRUN $DELAY
   fi
   
  
  
  
  1.5       +1 -1      jakarta-log4j/src/java/org/apache/log4j/performance/xml/logging1000.xml
  
  Index: logging1000.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/performance/xml/logging1000.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- logging1000.xml	14 Jun 2001 10:07:08 -0000	1.4
  +++ logging1000.xml	9 May 2002 19:53:38 -0000	1.5
  @@ -4,7 +4,7 @@
   <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
           <appender name="NULL" class="org.apache.log4j.net.SocketAppender">
              <param name="RemoteHost" value="localhost"/>
  -           <param name="Port" value="1000"/>
  +           <param name="Port" value="12345"/>
              <param name="ReconnectionDelay" value="1000"/>
   	</appender>
    
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>