Author: carnold
Date: Wed Aug 13 14:35:05 2008
New Revision: 685684
URL: http://svn.apache.org/viewvc?rev=685684&view=rev
Log:
Bug 44157: InterruptedIOException ignored by log4j
Modified:
logging/log4j/trunk/src/changes/changes.xml
logging/log4j/trunk/src/main/java/org/apache/log4j/DailyRollingFileAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/RollingFileAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/WriterAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/OnlyOnceErrorHandler.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketNode.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SyslogAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/TelnetAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/spi/ThrowableInformation.java
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/FallbackErrorHandler.java
logging/log4j/trunk/tests/src/java/org/apache/log4j/net/ShortSocketServer.java
Modified: logging/log4j/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/changes/changes.xml (original)
+++ logging/log4j/trunk/src/changes/changes.xml Wed Aug 13 14:35:05 2008
@@ -55,6 +55,7 @@
<action action="fix" issue="43849">Javadoc for Appender.getName implies
that the return value will be unique and not null.</action>
<action action="fix" issue="40888">Weekly rotation problem in
Europe.</action>
<action action="fix" issue="43282">Add OSGi packaging info.</action>
+ <action action="fix" issue="44157">InterruptedIOException ignored by
log4j.</action>
</release>
<release version="1.2.15" date="2007-08-24" description="SyslogAppender
enhancements, NTEventLogAppender and Maven build.">
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/DailyRollingFileAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/DailyRollingFileAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/DailyRollingFileAppender.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/DailyRollingFileAppender.java
Wed Aug 13 14:35:05 2008
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.io.File;
+import java.io.InterruptedIOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
@@ -353,7 +354,10 @@
rollOver();
}
catch(IOException ioe) {
- LogLog.error("rollOver() failed.", ioe);
+ if (ioe instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ LogLog.error("rollOver() failed.", ioe);
}
}
super.subAppend(event);
Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java Wed
Aug 13 14:35:05 2008
@@ -17,12 +17,7 @@
package org.apache.log4j;
-import java.io.IOException;
-import java.io.Writer;
-import java.io.FileOutputStream;
-import java.io.BufferedWriter;
-import java.io.FileNotFoundException;
-import java.io.File;
+import java.io.*;
import org.apache.log4j.spi.ErrorCode;
import org.apache.log4j.helpers.QuietWriter;
@@ -184,6 +179,9 @@
this.qw.close();
}
catch(java.io.IOException e) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
// Exceptionally, it does not make sense to delegate to an
// ErrorHandler. Since a closed appender is basically dead.
LogLog.error("Could not close " + qw, e);
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/RollingFileAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/RollingFileAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/RollingFileAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/RollingFileAppender.java
Wed Aug 13 14:35:05 2008
@@ -22,6 +22,8 @@
import java.io.IOException;
import java.io.Writer;
import java.io.File;
+import java.io.InterruptedIOException;
+
import org.apache.log4j.helpers.OptionConverter;
import org.apache.log4j.helpers.LogLog;
import org.apache.log4j.helpers.CountingQuietWriter;
@@ -165,7 +167,10 @@
this.setFile(fileName, true, bufferedIO, bufferSize);
}
catch(IOException e) {
- LogLog.error("setFile("+fileName+", true) call failed.", e);
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ LogLog.error("setFile("+fileName+", true) call failed.", e);
}
}
}
@@ -182,7 +187,10 @@
nextRollover = 0;
}
catch(IOException e) {
- LogLog.error("setFile("+fileName+", false) call failed.", e);
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ LogLog.error("setFile("+fileName+", false) call failed.", e);
}
}
}
Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/WriterAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/WriterAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/WriterAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/WriterAppender.java Wed
Aug 13 14:35:05 2008
@@ -17,10 +17,7 @@
package org.apache.log4j;
-import java.io.IOException;
-import java.io.Writer;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
+import java.io.*;
import org.apache.log4j.spi.ErrorHandler;
import org.apache.log4j.spi.LoggingEvent;
@@ -213,6 +210,9 @@
try {
qw.close();
} catch(IOException e) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
// There is do need to invoke an error handler at this late
// stage.
LogLog.error("Could not close " + qw, e);
@@ -235,8 +235,11 @@
try {
retval = new OutputStreamWriter(os, enc);
} catch(IOException e) {
- LogLog.warn("Error initializing output writer.");
- LogLog.warn("Unsupported encoding?");
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ LogLog.warn("Error initializing output writer.");
+ LogLog.warn("Unsupported encoding?");
}
}
if(retval == null) {
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/OnlyOnceErrorHandler.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/OnlyOnceErrorHandler.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/OnlyOnceErrorHandler.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/OnlyOnceErrorHandler.java
Wed Aug 13 14:35:05 2008
@@ -22,6 +22,8 @@
import org.apache.log4j.Logger;
import org.apache.log4j.Appender;
+import java.io.InterruptedIOException;
+
/**
The <code>OnlyOnceErrorHandler</code> implements log4j's default
@@ -74,6 +76,9 @@
*/
public
void error(String message, Exception e, int errorCode, LoggingEvent event) {
+ if (e instanceof InterruptedIOException || e instanceof
InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
if(firstTime) {
LogLog.error(message, e);
firstTime = false;
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketAppender.java
Wed Aug 13 14:35:05 2008
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.io.ObjectOutputStream;
+import java.io.InterruptedIOException;
import java.net.InetAddress;
import java.net.Socket;
@@ -185,7 +186,10 @@
try {
oos.close();
} catch(IOException e) {
- LogLog.error("Could not close oos.", e);
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ LogLog.error("Could not close oos.", e);
}
oos = null;
}
@@ -204,7 +208,6 @@
cleanUp();
oos = new ObjectOutputStream(new Socket(address,
port).getOutputStream());
} catch(IOException e) {
-
String msg = "Could not connect to remote log4j server at ["
+address.getHostName()+"].";
if(reconnectionDelay > 0) {
@@ -412,7 +415,10 @@
LogLog.debug("Remote host "+address.getHostName()
+" refused connection.");
} catch(IOException e) {
- LogLog.debug("Could not connect to " + address.getHostName()+
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ LogLog.debug("Could not connect to " + address.getHostName()+
". Exception is " + e);
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketHubAppender.java
Wed Aug 13 14:35:05 2008
@@ -444,6 +444,9 @@
// add it to the oosList. OK since Vector is synchronized.
oosList.addElement(oos);
} catch (IOException e) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("exception creating output stream on socket.", e);
}
}
@@ -453,8 +456,9 @@
// close the socket
try {
serverSocket.close();
- }
- catch (IOException e) {
+ } catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ } catch (IOException e) {
// do nothing with it?
}
}
Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketNode.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketNode.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketNode.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/SocketNode.java Wed
Aug 13 14:35:05 2008
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.BufferedInputStream;
+import java.io.InterruptedIOException;
import org.apache.log4j.*;
@@ -89,6 +90,10 @@
logger.info("Caught java.io.EOFException closing conneciton.");
} catch(java.net.SocketException e) {
logger.info("Caught java.net.SocketException closing conneciton.");
+ } catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ logger.info("Caught java.io.InterruptedIOException: "+e);
+ logger.info("Closing connection.");
} catch(IOException e) {
logger.info("Caught java.io.IOException: "+e);
logger.info("Closing connection.");
@@ -105,6 +110,8 @@
if (socket != null) {
try {
socket.close();
+ } catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
} catch(IOException ex) {
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SyslogAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SyslogAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/SyslogAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/SyslogAppender.java
Wed Aug 13 14:35:05 2008
@@ -28,6 +28,7 @@
import java.util.Locale;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import java.io.IOException;
// Contributors: Yves Bossel <[EMAIL PROTECTED]>
// Christopher Taylor <[EMAIL PROTECTED]>
@@ -157,7 +158,10 @@
}
sqw.close();
sqw = null;
- } catch(java.io.IOException ex) {
+ } catch(java.io.InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ sqw = null;
+ } catch(IOException e) {
sqw = null;
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/net/TelnetAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/TelnetAppender.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/TelnetAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/TelnetAppender.java
Wed Aug 13 14:35:05 2008
@@ -23,6 +23,7 @@
import java.io.IOException;
import java.io.PrintWriter;
+import java.io.InterruptedIOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Enumeration;
@@ -205,6 +206,8 @@
try {
serverSocket.close();
+ } catch(InterruptedIOException ex) {
+ Thread.currentThread().interrupt();
} catch(IOException ex) {
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/spi/ThrowableInformation.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/spi/ThrowableInformation.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/spi/ThrowableInformation.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/spi/ThrowableInformation.java
Wed Aug 13 14:35:05 2008
@@ -17,11 +17,7 @@
package org.apache.log4j.spi;
-import java.io.IOException;
-import java.io.LineNumberReader;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
+import java.io.*;
import java.util.ArrayList;
/**
@@ -83,6 +79,9 @@
line = reader.readLine();
}
} catch(IOException ex) {
+ if (ex instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
lines.add(ex.toString());
}
String[] tempRep = new String[lines.size()];
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/FallbackErrorHandler.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/varia/FallbackErrorHandler.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/FallbackErrorHandler.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/FallbackErrorHandler.java
Wed Aug 13 14:35:05 2008
@@ -23,7 +23,8 @@
import org.apache.log4j.Logger;
import org.apache.log4j.helpers.LogLog;
import java.util.Vector;
-
+import java.io.InterruptedIOException;
+
/**
*
* The <code>FallbackErrorHandler</code> implements the ErrorHandler
@@ -83,6 +84,9 @@
*/
public
void error(String message, Exception e, int errorCode, LoggingEvent event) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.debug("FB: The following error reported: " + message, e);
LogLog.debug("FB: INITIATING FALLBACK PROCEDURE.");
if (loggers != null) {
Modified:
logging/log4j/trunk/tests/src/java/org/apache/log4j/net/ShortSocketServer.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/tests/src/java/org/apache/log4j/net/ShortSocketServer.java?rev=685684&r1=685683&r2=685684&view=diff
==============================================================================
---
logging/log4j/trunk/tests/src/java/org/apache/log4j/net/ShortSocketServer.java
(original)
+++
logging/log4j/trunk/tests/src/java/org/apache/log4j/net/ShortSocketServer.java
Wed Aug 13 14:35:05 2008
@@ -20,15 +20,12 @@
import java.net.Socket;
import java.net.ServerSocket;
-import java.io.IOException;
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.MDC;
import org.apache.log4j.helpers.LogLog;
-import org.apache.log4j.net.SocketNode;
-import org.apache.log4j.net.SocketServer;
/**
* This SocketServer exits after certain number of connections from a
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]