Author: carnold
Date: Tue Aug 21 14:00:54 2007
New Revision: 568278

URL: http://svn.apache.org/viewvc?rev=568278&view=rev
Log:
Bug 43181: NPE in MDC after Tomcat reload

Modified:
    logging/log4j/trunk/src/changes/changes.xml
    logging/log4j/trunk/src/main/java/org/apache/log4j/MDC.java

Modified: logging/log4j/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=568278&r1=568277&r2=568278&view=diff
==============================================================================
--- logging/log4j/trunk/src/changes/changes.xml (original)
+++ logging/log4j/trunk/src/changes/changes.xml Tue Aug 21 14:00:54 2007
@@ -22,7 +22,8 @@
   <body>
   
     <release version="1.2.15" date="2007-06-27" description="SyslogAppender 
enhancements, NTEventLogAppender and Maven build.">
-       <action action="fix" issue="34874">Notice to use UTF-8 or UTF-16 
encoding added to XML and HTMLLayout javadoc.</action>
+       <action action="fix" issue="43181">NullPointerException in MDC on 
Tomcat reload.</action>
+        <action action="fix" issue="34874">Notice to use UTF-8 or UTF-16 
encoding added to XML and HTMLLayout javadoc.</action>
        <action action="fix" issue="34875">XML and HTMLLayout do not always 
escape special characters.</action>
        <action action="add" issue="43078">Optionally render MDC content in 
XMLLayout</action>
        <action action="fix" issue="42694">Typo in log4j.dtd concerning 
threshold.</action>
@@ -77,7 +78,7 @@
       <release version="1.2.14" date="2006-09-18" description="AsyncAppender 
rewrite, Syslog and SMTPAppender enhancements.">
       <action action="fix" issue="38137">Monitor deadlock in 
AsyncAppender.</action>
       <action action="fix" issue="28006">AsyncAppender: Dispatcher should run 
at normal prio.</action>
-      <action action="fix" issue="40159">AsyncAppender wait forever when 
buffer is full.</action>
+      <action action="fix" issue="37904">AsyncAppender wait forever when 
buffer is full.</action>
       <action action="add" issue="38982">Add non-blocking option for 
AsyncAppender.</action>
       <action action="add" issue="39687">Add SyslogPort option to 
SyslogAppender.</action>
       <action action="add" issue="19125">Add cc and bcc addresses to 
SMTPAppender.</action>

Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/MDC.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/MDC.java?rev=568278&r1=568277&r2=568278&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/MDC.java (original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/MDC.java Tue Aug 21 
14:00:54 2007
@@ -70,7 +70,9 @@
   static
   public
   void put(String key, Object o) {
-    mdc.put0(key, o);
+     if (mdc != null) {
+         mdc.put0(key, o);
+     }
   }
   
   /**
@@ -81,7 +83,10 @@
   static 
   public
   Object get(String key) {
-    return mdc.get0(key);
+    if (mdc != null) {
+        return mdc.get0(key);
+    }
+    return null;
   }
 
   /**
@@ -92,7 +97,9 @@
   static 
   public
   void remove(String key) {
-    mdc.remove0(key);
+    if (mdc != null) {
+        mdc.remove0(key);
+    }
   }
 
 
@@ -101,13 +108,17 @@
    * intended to be used internally.  
    * */
   public static Hashtable getContext() {
-    return mdc.getContext0();
+    if (mdc != null) {
+        return mdc.getContext0();
+    } else {
+        return null;
+    }
   }
 
 
   private
   void put0(String key, Object o) {
-    if(java1) {
+    if(java1 || tlm == null) {
       return;
     } else {
       Hashtable ht = (Hashtable) ((ThreadLocalMap)tlm).get();
@@ -121,7 +132,7 @@
   
   private
   Object get0(String key) {
-    if(java1) {
+    if(java1 || tlm == null) {
       return null;
     } else {       
       Hashtable ht = (Hashtable) ((ThreadLocalMap)tlm).get();
@@ -135,7 +146,7 @@
 
   private
   void remove0(String key) {
-    if(!java1) {
+    if(!java1 && tlm != null) {
       Hashtable ht = (Hashtable) ((ThreadLocalMap)tlm).get();
       if(ht != null) {
         ht.remove(key);
@@ -146,7 +157,7 @@
 
   private
   Hashtable getContext0() {
-     if(java1) {
+     if(java1 || tlm == null) {
       return null;
     } else {       
       return (Hashtable) ((ThreadLocalMap)tlm).get();



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

Reply via email to