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]