Author: carnold
Date: Tue Jun  5 16:26:34 2007
New Revision: 544675

URL: http://svn.apache.org/viewvc?view=rev&rev=544675
Log:
bug 42585: SocketNode can leak Sockets

Modified:
    logging/log4j/branches/v1_2-branch/src/changes/changes.xml
    
logging/log4j/branches/v1_2-branch/src/main/java/org/apache/log4j/net/SocketNode.java

Modified: logging/log4j/branches/v1_2-branch/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/v1_2-branch/src/changes/changes.xml?view=diff&rev=544675&r1=544674&r2=544675
==============================================================================
--- logging/log4j/branches/v1_2-branch/src/changes/changes.xml (original)
+++ logging/log4j/branches/v1_2-branch/src/changes/changes.xml Tue Jun  5 
16:26:34 2007
@@ -21,7 +21,8 @@
   </properties>
   <body>
   
-    <release version="1.2.15" date="2007-05-16" description="SyslogAppender 
enhancements, NTEventLogAppender and Maven build.">
+    <release version="1.2.15" date="2007-06-05" description="SyslogAppender 
enhancements, NTEventLogAppender and Maven build.">
+       <action action="fix" issue="42585">SocketNode can leak Sockets.</action>
           <action action="fix" issue="37930">Migrate to Maven based build and 
documentation.</action>
           <action action="fix" issue="40604">Prepare Maven release 
bundles.</action>
           <action action="fix" issue="42283">Eclipse compiler warning 
cleanup.</action>

Modified: 
logging/log4j/branches/v1_2-branch/src/main/java/org/apache/log4j/net/SocketNode.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/branches/v1_2-branch/src/main/java/org/apache/log4j/net/SocketNode.java?view=diff&rev=544675&r1=544674&r2=544675
==============================================================================
--- 
logging/log4j/branches/v1_2-branch/src/main/java/org/apache/log4j/net/SocketNode.java
 (original)
+++ 
logging/log4j/branches/v1_2-branch/src/main/java/org/apache/log4j/net/SocketNode.java
 Tue Jun  5 16:26:34 2007
@@ -71,17 +71,19 @@
     Logger remoteLogger;
 
     try {
-      while(true) {
-       // read an event from the wire
-       event = (LoggingEvent) ois.readObject();
-       // get a logger from the hierarchy. The name of the logger is taken to 
be the name contained in the event.
-       remoteLogger = hierarchy.getLogger(event.getLoggerName());
-       //event.logger = remoteLogger;
-       // apply the logger-level filter
-       if(event.getLevel().isGreaterOrEqual(remoteLogger.getEffectiveLevel())) 
{
-         // finally log the event as if was generated locally
-         remoteLogger.callAppenders(event);
-       }
+      if (ois != null) {
+          while(true) {
+               // read an event from the wire
+               event = (LoggingEvent) ois.readObject();
+               // get a logger from the hierarchy. The name of the logger is 
taken to be the name contained in the event.
+               remoteLogger = hierarchy.getLogger(event.getLoggerName());
+               //event.logger = remoteLogger;
+               // apply the logger-level filter
+               
if(event.getLevel().isGreaterOrEqual(remoteLogger.getEffectiveLevel())) {
+               // finally log the event as if was generated locally
+               remoteLogger.callAppenders(event);
+             }
+        }
       }
     } catch(java.io.EOFException e) {
       logger.info("Caught java.io.EOFException closing conneciton.");
@@ -92,12 +94,20 @@
       logger.info("Closing connection.");
     } catch(Exception e) {
       logger.error("Unexpected exception. Closing conneciton.", e);
-    }
-
-    try {
-      ois.close();
-    } catch(Exception e) {
-      logger.info("Could not close connection.", e);
+    } finally {
+      if (ois != null) {
+         try {
+            ois.close();
+         } catch(Exception e) {
+            logger.info("Could not close connection.", e);
+         }
+      }
+      if (socket != null) {
+        try {
+          socket.close();
+        } catch(IOException ex) {
+        }
+      }
     }
   }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to