Author: carnold
Date: Thu Aug 14 00:56:20 2008
New Revision: 685796
URL: http://svn.apache.org/viewvc?rev=685796&view=rev
Log:
Bug 44157: InterruptedIOException ignored by log4j, round 2
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/PropertyConfigurator.java
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/HierarchyDynamicMBean.java
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LayoutDynamicMBean.java
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSSink.java
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.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/TelnetAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/spi/LoggingEvent.java
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/ExternallyRolledFileAppender.java
logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/PropertyConfigurator.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/PropertyConfigurator.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/PropertyConfigurator.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/PropertyConfigurator.java
Thu Aug 14 00:56:20 2008
@@ -35,6 +35,8 @@
import java.io.FileInputStream;
import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.io.IOException;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
@@ -318,6 +320,9 @@
istream.close();
}
catch (Exception e) {
+ if (e instanceof InterruptedIOException || e instanceof
InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("Could not read configuration file ["+configFileName+"].",
e);
LogLog.error("Ignoring configuration file [" + configFileName+"].");
return;
@@ -325,6 +330,8 @@
if(istream != null) {
try {
istream.close();
+ } catch(InterruptedIOException ignore) {
+ Thread.currentThread().interrupt();
} catch(Throwable ignore) {
}
@@ -460,6 +467,9 @@
props.load(istream);
}
catch (Exception e) {
+ if (e instanceof InterruptedIOException || e instanceof
InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("Could not read configuration file from URL [" + configURL
+ "].", e);
LogLog.error("Ignoring configuration file [" + configURL +"].");
@@ -469,7 +479,10 @@
if (istream != null) {
try {
istream.close();
- } catch(Exception ignore) {
+ } catch(InterruptedIOException ignore) {
+ Thread.currentThread().interrupt();
+ } catch(IOException ignore) {
+ } catch(RuntimeException ignore) {
}
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
Thu Aug 14 00:56:20 2008
@@ -18,16 +18,18 @@
package org.apache.log4j.jmx;
//import java.lang.reflect.Constructor;
-import java.util.Iterator;
-import javax.management.DynamicMBean;
-import javax.management.AttributeList;
+
+import org.apache.log4j.Logger;
+
import javax.management.Attribute;
-import javax.management.RuntimeOperationsException;
+import javax.management.AttributeList;
+import javax.management.DynamicMBean;
+import javax.management.JMException;
import javax.management.MBeanRegistration;
import javax.management.MBeanServer;
import javax.management.ObjectName;
-
-import org.apache.log4j.Logger;
+import javax.management.RuntimeOperationsException;
+import java.util.Iterator;
public abstract class AbstractDynamicMBean implements DynamicMBean,
MBeanRegistration {
@@ -59,8 +61,10 @@
try {
Object value = getAttribute((String) attributeNames[i]);
resultList.add(new Attribute(attributeNames[i],value));
- } catch (Exception e) {
- e.printStackTrace();
+ } catch (JMException e) {
+ e.printStackTrace();
+ } catch (RuntimeException e) {
+ e.printStackTrace();
}
}
return(resultList);
@@ -92,8 +96,10 @@
String name = attr.getName();
Object value = getAttribute(name);
resultList.add(new Attribute(name,value));
- } catch(Exception e) {
- e.printStackTrace();
+ } catch(JMException e) {
+ e.printStackTrace();
+ } catch(RuntimeException e) {
+ e.printStackTrace();
}
}
return(resultList);
Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java (original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java Thu Aug
14 00:56:20 2008
@@ -17,12 +17,12 @@
package org.apache.log4j.jmx;
-import javax.management.ObjectName;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-
import org.apache.log4j.Logger;
+import javax.management.JMException;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
import java.lang.reflect.InvocationTargetException;
@@ -62,7 +62,11 @@
try {
newInstance = Class.forName(
"com.sun.jdmk.comm.HtmlAdapterServer").newInstance();
- } catch (Exception ex) {
+ } catch (ClassNotFoundException ex) {
+ throw new RuntimeException(ex.toString());
+ } catch (InstantiationException ex) {
+ throw new RuntimeException(ex.toString());
+ } catch (IllegalAccessException ex) {
throw new RuntimeException(ex.toString());
}
return newInstance;
@@ -87,9 +91,11 @@
} else {
throw new RuntimeException();
}
- } catch(Exception ex) {
+ } catch(NoSuchMethodException ex) {
throw new RuntimeException(ex.toString());
- }
+ } catch(IllegalAccessException ex) {
+ throw new RuntimeException(ex.toString());
+ }
}
@@ -108,8 +114,10 @@
log.info("Registering HierarchyDynamicMBean instance.");
HierarchyDynamicMBean hdm = new HierarchyDynamicMBean();
server.registerMBean(hdm, new ObjectName("log4j:hiearchy=default"));
-
- } catch(Exception e) {
+ } catch(JMException e) {
+ log.error("Problem while registering MBeans instances.", e);
+ return;
+ } catch(RuntimeException e) {
log.error("Problem while registering MBeans instances.", e);
return;
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
Thu Aug 14 00:56:20 2008
@@ -17,34 +17,39 @@
package org.apache.log4j.jmx;
-import java.lang.reflect.Constructor;
-import org.apache.log4j.*;
+import org.apache.log4j.Appender;
+import org.apache.log4j.Layout;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
import org.apache.log4j.helpers.OptionConverter;
import org.apache.log4j.spi.OptionHandler;
-import java.util.Vector;
-import java.util.Hashtable;
-import java.lang.reflect.Method;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanConstructorInfo;
-import javax.management.MBeanNotificationInfo;
-import javax.management.ObjectName;
-import javax.management.MBeanInfo;
import javax.management.Attribute;
-import javax.management.MBeanServer;
-
-import javax.management.MBeanException;
import javax.management.AttributeNotFoundException;
-import javax.management.RuntimeOperationsException;
-import javax.management.ReflectionException;
import javax.management.InvalidAttributeValueException;
+import javax.management.JMException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanNotificationInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanParameterInfo;
-
-import java.beans.Introspector;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+import javax.management.RuntimeOperationsException;
import java.beans.BeanInfo;
-import java.beans.PropertyDescriptor;
import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Hashtable;
+import java.util.Vector;
public class AppenderDynamicMBean extends AbstractDynamicMBean {
@@ -199,7 +204,11 @@
"The " + name + " layout.", true, true, false));
}
- } catch(Exception e) {
+ } catch(JMException e) {
+ cat.error("Could not add DynamicLayoutMBean for ["+name+"].", e);
+ } catch(java.beans.IntrospectionException e) {
+ cat.error("Could not add DynamicLayoutMBean for ["+name+"].", e);
+ } catch(RuntimeException e) {
cat.error("Could not add DynamicLayoutMBean for ["+name+"].", e);
}
}
@@ -225,9 +234,11 @@
cat.debug("getAttribute called with ["+attributeName+"].");
if(attributeName.startsWith("appender="+appender.getName()+",layout")) {
try {
- return new ObjectName("log4j:"+attributeName );
- } catch(Exception e) {
- cat.error("attributeName", e);
+ return new ObjectName("log4j:"+attributeName );
+ } catch(MalformedObjectNameException e) {
+ cat.error("attributeName", e);
+ } catch(RuntimeException e) {
+ cat.error("attributeName", e);
}
}
@@ -238,8 +249,12 @@
if(mu != null && mu.readMethod != null) {
try {
return mu.readMethod.invoke(appender, null);
- } catch(Exception e) {
- return null;
+ } catch(IllegalAccessException e) {
+ return null;
+ } catch(InvocationTargetException e) {
+ return null;
+ } catch(RuntimeException e) {
+ return null;
}
}
@@ -292,8 +307,12 @@
try {
mu.writeMethod.invoke(appender, o);
- } catch(Exception e) {
- cat.error("FIXME", e);
+ } catch(InvocationTargetException e) {
+ cat.error("FIXME", e);
+ } catch(IllegalAccessException e) {
+ cat.error("FIXME", e);
+ } catch(RuntimeException e) {
+ cat.error("FIXME", e);
}
} else if(name.endsWith(".layout")) {
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/HierarchyDynamicMBean.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/HierarchyDynamicMBean.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/HierarchyDynamicMBean.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/HierarchyDynamicMBean.java
Thu Aug 14 00:56:20 2008
@@ -18,36 +18,38 @@
package org.apache.log4j.jmx;
-import java.lang.reflect.Constructor;
-import org.apache.log4j.*;
-
+import org.apache.log4j.Appender;
+import org.apache.log4j.Category;
+import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.log4j.helpers.OptionConverter;
import org.apache.log4j.spi.HierarchyEventListener;
import org.apache.log4j.spi.LoggerRepository;
-import org.apache.log4j.helpers.OptionConverter;
-import java.util.Vector;
+import javax.management.Attribute;
+import javax.management.AttributeNotFoundException;
+import javax.management.InvalidAttributeValueException;
+import javax.management.JMException;
+import javax.management.ListenerNotFoundException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
import javax.management.MBeanNotificationInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanParameterInfo;
-
-import javax.management.ObjectName;
-import javax.management.MBeanInfo;
-import javax.management.Attribute;
-
-import javax.management.MBeanException;
-import javax.management.AttributeNotFoundException;
-import javax.management.RuntimeOperationsException;
-import javax.management.ReflectionException;
-import javax.management.InvalidAttributeValueException;
-import javax.management.NotificationBroadcasterSupport;
-import javax.management.NotificationBroadcaster;
import javax.management.Notification;
-import javax.management.NotificationListener;
+import javax.management.NotificationBroadcaster;
+import javax.management.NotificationBroadcasterSupport;
import javax.management.NotificationFilter;
import javax.management.NotificationFilterSupport;
-import javax.management.ListenerNotFoundException;
+import javax.management.NotificationListener;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+import javax.management.RuntimeOperationsException;
+import java.lang.reflect.Constructor;
+import java.util.Vector;
public class HierarchyDynamicMBean extends AbstractDynamicMBean
implements HierarchyEventListener,
@@ -132,7 +134,9 @@
}
- } catch(Exception e) {
+ } catch(JMException e) {
+ log.error("Could not add loggerMBean for ["+name+"].", e);
+ } catch(RuntimeException e) {
log.error("Could not add loggerMBean for ["+name+"].", e);
}
return objectName;
@@ -219,8 +223,10 @@
}
try {
return new ObjectName("log4j:"+val);
- } catch(Exception e) {
- log.error("Could not create ObjectName" + val);
+ } catch(JMException e) {
+ log.error("Could not create ObjectName" + val);
+ } catch(RuntimeException e) {
+ log.error("Could not create ObjectName" + val);
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LayoutDynamicMBean.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LayoutDynamicMBean.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LayoutDynamicMBean.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LayoutDynamicMBean.java
Thu Aug 14 00:56:20 2008
@@ -27,6 +27,7 @@
import java.util.Vector;
import java.util.Hashtable;
import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanConstructorInfo;
import javax.management.MBeanNotificationInfo;
@@ -188,8 +189,12 @@
if(mu != null && mu.readMethod != null) {
try {
return mu.readMethod.invoke(layout, null);
- } catch(Exception e) {
- return null;
+ } catch(InvocationTargetException e) {
+ return null;
+ } catch(IllegalAccessException e) {
+ return null;
+ } catch(RuntimeException e) {
+ return null;
}
}
@@ -242,8 +247,12 @@
try {
mu.writeMethod.invoke(layout, o);
- } catch(Exception e) {
- cat.error("FIXME", e);
+ } catch(InvocationTargetException e) {
+ cat.error("FIXME", e);
+ } catch(IllegalAccessException e) {
+ cat.error("FIXME", e);
+ } catch(RuntimeException e) {
+ cat.error("FIXME", e);
}
} else {
throw(new AttributeNotFoundException("Attribute " + name +
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java
Thu Aug 14 00:56:20 2008
@@ -17,31 +17,32 @@
package org.apache.log4j.jmx;
-import java.lang.reflect.Constructor;
-import org.apache.log4j.Logger;
-import org.apache.log4j.Level;
import org.apache.log4j.Appender;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
import org.apache.log4j.helpers.OptionConverter;
-import java.util.Vector;
-import java.util.Enumeration;
-
+import javax.management.Attribute;
+import javax.management.AttributeNotFoundException;
+import javax.management.InvalidAttributeValueException;
+import javax.management.JMException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanConstructorInfo;
+import javax.management.MBeanException;
+import javax.management.MBeanInfo;
import javax.management.MBeanNotificationInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanParameterInfo;
+import javax.management.MalformedObjectNameException;
+import javax.management.Notification;
+import javax.management.NotificationListener;
import javax.management.ObjectName;
-import javax.management.MBeanInfo;
-import javax.management.Attribute;
-
-import javax.management.MBeanException;
-import javax.management.AttributeNotFoundException;
-import javax.management.RuntimeOperationsException;
import javax.management.ReflectionException;
-import javax.management.InvalidAttributeValueException;
-import javax.management.NotificationListener;
-import javax.management.Notification;
+import javax.management.RuntimeOperationsException;
+import javax.management.IntrospectionException;
+import java.lang.reflect.Constructor;
+import java.util.Enumeration;
+import java.util.Vector;
public class LoggerDynamicMBean extends AbstractDynamicMBean
implements NotificationListener {
@@ -174,8 +175,10 @@
} else if(attributeName.startsWith("appender=")) {
try {
return new ObjectName("log4j:"+attributeName );
- } catch(Exception e) {
- cat.error("Could not create ObjectName" + attributeName);
+ } catch(MalformedObjectNameException e) {
+ cat.error("Could not create ObjectName" + attributeName);
+ } catch(RuntimeException e) {
+ cat.error("Could not create ObjectName" + attributeName);
}
}
@@ -264,7 +267,11 @@
"The " + name + " appender.", true, true, false));
}
- } catch(Exception e) {
+ } catch(JMException e) {
+ cat.error("Could not add appenderMBean for ["+name+"].", e);
+ } catch(java.beans.IntrospectionException e) {
+ cat.error("Could not add appenderMBean for ["+name+"].", e);
+ } catch(RuntimeException e) {
cat.error("Could not add appenderMBean for ["+name+"].", e);
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSAppender.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSAppender.java Thu
Aug 14 00:56:20 2008
@@ -18,22 +18,23 @@
package org.apache.log4j.net;
import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.spi.ErrorCode;
import org.apache.log4j.helpers.LogLog;
+import org.apache.log4j.spi.ErrorCode;
+import org.apache.log4j.spi.LoggingEvent;
-import java.util.Properties;
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Session;
+import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
-import javax.jms.Topic;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;
-import javax.jms.Session;
-import javax.jms.ObjectMessage;
-import javax.naming.InitialContext;
import javax.naming.Context;
+import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
+import java.util.Properties;
/**
* A simple appender that publishes events to a JMS Topic. The events
@@ -227,7 +228,13 @@
topicConnection.start();
jndi.close();
- } catch(Exception e) {
+ } catch(JMSException e) {
+ errorHandler.error("Error while activating options for appender named
["+name+
+ "].", e, ErrorCode.GENERIC_FAILURE);
+ } catch(NamingException e) {
+ errorHandler.error("Error while activating options for appender named
["+name+
+ "].", e, ErrorCode.GENERIC_FAILURE);
+ } catch(RuntimeException e) {
errorHandler.error("Error while activating options for appender named
["+name+
"].", e, ErrorCode.GENERIC_FAILURE);
}
@@ -278,7 +285,9 @@
topicSession.close();
if(topicConnection != null)
topicConnection.close();
- } catch(Exception e) {
+ } catch(JMSException e) {
+ LogLog.error("Error while closing JMSAppender ["+name+"].", e);
+ } catch(RuntimeException e) {
LogLog.error("Error while closing JMSAppender ["+name+"].", e);
}
// Help garbage collection
@@ -302,7 +311,10 @@
}
msg.setObject(event);
topicPublisher.publish(msg);
- } catch(Exception e) {
+ } catch(JMSException e) {
+ errorHandler.error("Could not publish message in JMSAppender
["+name+"].", e,
+ ErrorCode.GENERIC_FAILURE);
+ } catch(RuntimeException e) {
errorHandler.error("Could not publish message in JMSAppender
["+name+"].", e,
ErrorCode.GENERIC_FAILURE);
}
Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSSink.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSSink.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSSink.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/JMSSink.java Thu Aug
14 00:56:20 2008
@@ -105,7 +105,11 @@
topicSubscriber.setMessageListener(this);
- } catch(Exception e) {
+ } catch(JMSException e) {
+ logger.error("Could not read JMS message.", e);
+ } catch(NamingException e) {
+ logger.error("Could not read JMS message.", e);
+ } catch(RuntimeException e) {
logger.error("Could not read JMS message.", e);
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java
Thu Aug 14 00:56:20 2008
@@ -332,7 +332,9 @@
msg.setSentDate(new Date());
Transport.send(msg);
- } catch(Exception e) {
+ } catch(MessagingException e) {
+ LogLog.error("Error occured while sending e-mail notification.", e);
+ } catch(RuntimeException e) {
LogLog.error("Error occured while sending e-mail notification.", e);
}
}
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=685796&r1=685795&r2=685796&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
Thu Aug 14 00:56:20 2008
@@ -208,6 +208,9 @@
cleanUp();
oos = new ObjectOutputStream(new Socket(address,
port).getOutputStream());
} catch(IOException e) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
String msg = "Could not connect to remote log4j server at ["
+address.getHostName()+"].";
if(reconnectionDelay > 0) {
@@ -252,14 +255,17 @@
oos.reset();
}
} catch(IOException e) {
- oos = null;
- LogLog.warn("Detected problem with connection: "+e);
- if(reconnectionDelay > 0) {
- fireConnector();
- } else {
- errorHandler.error("Detected problem with connection, not
reconnecting.", e,
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ oos = null;
+ LogLog.warn("Detected problem with connection: "+e);
+ if(reconnectionDelay > 0) {
+ fireConnector();
+ } else {
+ errorHandler.error("Detected problem with connection, not
reconnecting.", e,
ErrorCode.GENERIC_FAILURE);
- }
+ }
}
}
}
@@ -279,6 +285,9 @@
try {
return InetAddress.getByName(host);
} catch(Exception e) {
+ if (e instanceof InterruptedIOException || e instanceof
InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("Could not find address of ["+host+"].", e);
return null;
}
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=685796&r1=685795&r2=685796&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
Thu Aug 14 00:56:20 2008
@@ -168,9 +168,11 @@
if(oos != null) {
try {
oos.close();
- }
- catch(IOException e) {
- LogLog.error("could not close oos.", e);
+ } catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ LogLog.error("could not close oos.", e);
+ } catch(IOException e) {
+ LogLog.error("could not close oos.", e);
}
oosList.removeElementAt(0);
@@ -226,7 +228,10 @@
oos.reset();
}
catch(IOException e) {
- // there was an io exception so just drop the connection
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ // there was an io exception so just drop the connection
oosList.removeElementAt(streamCount);
LogLog.debug("dropped connection");
@@ -398,6 +403,9 @@
serverSocket.setSoTimeout(1000);
}
catch (Exception e) {
+ if (e instanceof InterruptedIOException || e instanceof
InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("exception setting timeout, shutting down server
socket.", e);
keepRunning = false;
return;
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=685796&r1=685795&r2=685796&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
Thu Aug 14 00:56:20 2008
@@ -77,7 +77,12 @@
sh = new SocketHandler(port);
sh.start();
}
- catch(Exception e) {
+ catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ e.printStackTrace();
+ } catch(IOException e) {
+ e.printStackTrace();
+ } catch(RuntimeException e) {
e.printStackTrace();
}
super.activateOptions();
@@ -149,14 +154,20 @@
for(Enumeration e = connections.elements();e.hasMoreElements();) {
try {
((Socket)e.nextElement()).close();
- } catch(Exception ex) {
+ } catch(InterruptedIOException ex) {
+ Thread.currentThread().interrupt();
+ } catch(IOException ex) {
+ } catch(RuntimeException ex) {
}
}
}
try {
serverSocket.close();
- } catch(Exception ex) {
+ } catch(InterruptedIOException ex) {
+ Thread.currentThread().interrupt();
+ } catch(IOException ex) {
+ } catch(RuntimeException ex) {
}
}
@@ -197,6 +208,9 @@
newClient.close();
}
} catch(Exception e) {
+ if (e instanceof InterruptedIOException || e instanceof
InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
if (!serverSocket.isClosed()) {
LogLog.error("Encountered error while in SocketHandler loop.", e);
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/spi/LoggingEvent.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/spi/LoggingEvent.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/spi/LoggingEvent.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/spi/LoggingEvent.java
Thu Aug 14 00:56:20 2008
@@ -17,18 +17,23 @@
package org.apache.log4j.spi;
-import org.apache.log4j.*;
-
-import org.apache.log4j.helpers.LogLog;
+import org.apache.log4j.Category;
+import org.apache.log4j.Level;
+import org.apache.log4j.MDC;
+import org.apache.log4j.NDC;
+import org.apache.log4j.Priority;
import org.apache.log4j.helpers.Loader;
-import java.lang.reflect.Method;
-import java.io.ObjectOutputStream;
+import org.apache.log4j.helpers.LogLog;
+
import java.io.ObjectInputStream;
-import java.util.Hashtable;
-import java.util.Set;
+import java.io.ObjectOutputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.Collections;
-import java.util.Map;
import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
// Contributors: Nelson Minar <[EMAIL PROTECTED]>
// Wolf Siberski
@@ -433,7 +438,16 @@
PARAM_ARRAY[0] = new Integer(p);
level = (Level) m.invoke(null, PARAM_ARRAY);
}
- } catch(Exception e) {
+ } catch(InvocationTargetException e) {
+ LogLog.warn("Level deserialization failed, reverting to default.", e);
+ level = Level.toLevel(p);
+ } catch(NoSuchMethodException e) {
+ LogLog.warn("Level deserialization failed, reverting to default.", e);
+ level = Level.toLevel(p);
+ } catch(IllegalAccessException e) {
+ LogLog.warn("Level deserialization failed, reverting to default.", e);
+ level = Level.toLevel(p);
+ } catch(RuntimeException e) {
LogLog.warn("Level deserialization failed, reverting to default.", e);
level = Level.toLevel(p);
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/ExternallyRolledFileAppender.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/varia/ExternallyRolledFileAppender.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
---
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/ExternallyRolledFileAppender.java
(original)
+++
logging/log4j/trunk/src/main/java/org/apache/log4j/varia/ExternallyRolledFileAppender.java
Thu Aug 14 00:56:20 2008
@@ -19,6 +19,8 @@
import java.io.DataInputStream;
import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InterruptedIOException;
import java.net.ServerSocket;
import java.net.Socket;
@@ -124,9 +126,13 @@
LogLog.debug("Connected to client at " + socket.getInetAddress());
new Thread(new HUPNode(socket, er),
"ExternallyRolledFileAppender-HUP").start();
}
- }
- catch(Exception e) {
- e.printStackTrace();
+ } catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ e.printStackTrace();
+ } catch(IOException e) {
+ e.printStackTrace();
+ } catch(RuntimeException e) {
+ e.printStackTrace();
}
}
}
@@ -146,8 +152,12 @@
try {
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
- }
- catch(Exception e) {
+ } catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ e.printStackTrace();
+ } catch(IOException e) {
+ e.printStackTrace();
+ } catch(RuntimeException e) {
e.printStackTrace();
}
}
@@ -166,8 +176,12 @@
dos.writeUTF("Expecting [RollOver] string.");
}
dos.close();
- }
- catch(Exception e) {
+ } catch(InterruptedIOException e) {
+ Thread.currentThread().interrupt();
+ LogLog.error("Unexpected exception. Exiting HUPNode.", e);
+ } catch(IOException e) {
+ LogLog.error("Unexpected exception. Exiting HUPNode.", e);
+ } catch(RuntimeException e) {
LogLog.error("Unexpected exception. Exiting HUPNode.", e);
}
}
Modified:
logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java
URL:
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java?rev=685796&r1=685795&r2=685796&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java
(original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/xml/DOMConfigurator.java
Thu Aug 14 00:56:20 2008
@@ -49,6 +49,7 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InterruptedIOException;
import java.io.Reader;
import java.lang.reflect.Method;
import java.net.URL;
@@ -223,6 +224,9 @@
try {
parseUnrecognizedElement(instance, element, props);
} catch (Exception ex) {
+ if (ex instanceof InterruptedException || ex instanceof
InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("Error in extension content: ", ex);
}
}
@@ -289,6 +293,9 @@
/* Yes, it's ugly. But all of these exceptions point to the same
problem: we can't create an Appender */
catch (Exception oops) {
+ if (oops instanceof InterruptedException || oops instanceof
InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("Could not create an Appender. Reported error follows.",
oops);
return null;
@@ -556,6 +563,9 @@
return layout;
}
catch (Exception oops) {
+ if (oops instanceof InterruptedException || oops instanceof
InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("Could not create the Layout. Reported error follows.",
oops);
return null;
@@ -605,6 +615,9 @@
new Object[] {priStr});
logger.setLevel(pri);
} catch (Exception oops) {
+ if (oops instanceof InterruptedException || oops instanceof
InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
LogLog.error("Could not create level ["+priStr+
"]. Reported error follows.", oops);
return;
@@ -793,6 +806,9 @@
Document doc = action.parse(docBuilder);
parse(doc.getDocumentElement());
} catch (Exception e) {
+ if (e instanceof InterruptedException || e instanceof
InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
// I know this is miserable...
LogLog.error("Could not parse "+ action.toString() + ".", e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]