Hm, I now see what you mean. http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/helpers/ThreadLocalMap.html shows the remove method is available and inherited from ThreadLocal. Clicking on it leads to the correct javadocs of 1.3, but the remove() method isn't there.
http://docs.oracle.com/javase/6/docs/api/java/lang/ThreadLocal.html#remove() shows the remove method has been added in 1.5. Clearly the log4j apidocs should not show the remove() method. Crap... any ideas if we can workaround it? If not, can we move on to java 1.5? I mean 1.3.... wow my grandma has worked with 1.3. Yes I know there might be some poor guy in some corner at the world working with 1.3 or 1.4, but a memory leak is really a nasty thing and hey, even 1.5 is pretty old Cheers Christian On Sat, Jan 14, 2012 at 10:38 PM, Ralph Goers <[email protected]> wrote: > I'll look again when I get home, but when I looked this morning I thought > ThreadLocalMap extended InheritablThreadLocal > > Sent from my iPhone > > On Jan 14, 2012, at 12:14 PM, Christian Grobmeier <[email protected]> wrote: > >> On Sat, Jan 14, 2012 at 9:04 PM, Ralph Goers <[email protected]> >> wrote: >>> Two things: >>> 1. This fix needs to be reverted or modified as it requires Java 5. >> >> Can you explain why? ((ThreadLocalMap)tlm).remove(); - ThreadLocalMap >> is a class from log4j: >> http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/helpers/ThreadLocalMap.html >> To my understanding it is still no problem? >> >> I think you mixed it up with ThreadLocal, which got a remove method in J5 >> >>> 2. The reply-to on mails generated from subversion is >>> [email protected] which doesn't exist. Anyone know how to fix this? >> >> Guess we need to ask infra to modify that. But didn't we discuss this >> already? >> Here is no matching list mentioned: http://logging.apache.org/mail-lists.html >> >> Cheers >> Christian >> >> >>> >>> Ralph >>> >>> >>> On Jan 13, 2012, at 2:39 PM, [email protected] wrote: >>> >>>> Author: grobmeier >>>> Date: Fri Jan 13 22:39:19 2012 >>>> New Revision: 1231361 >>>> >>>> URL: http://svn.apache.org/viewvc?rev=1231361&view=rev >>>> Log: >>>> 50486 applied patch for memory leak thanks to Yingchun Chen and chahuistle >>>> >>>> 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=1231361&r1=1231360&r2=1231361&view=diff >>>> ============================================================================== >>>> --- logging/log4j/trunk/src/changes/changes.xml (original) >>>> +++ logging/log4j/trunk/src/changes/changes.xml Fri Jan 13 22:39:19 2012 >>>> @@ -22,6 +22,7 @@ >>>> <body> >>>> <release version="1.2.17" date="2010-06-99" description="Maintenance >>>> release"> >>>> <action issue="49470">log4j 1.2.17 release preparation</action> >>>> + <action issue="50486" action="fix">Memoryleak - >>>> org.apache.log4j.helpers.ThreadLocalMap</action> >>>> <action issue="43282" action="fix">Eliminate duplicates in OSGi >>>> Import-Package directive.</action> >>>> <action issue="48588" action="fix">DOMConfigurator does not close >>>> input stream when configured based on URL.</action> >>>> <action issue="49078" action="fix">javadoc.jar was missing NOTICE >>>> and LICENSE and contained .svn entries.</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=1231361&r1=1231360&r2=1231361&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 Fri Jan 13 >>>> 22:39:19 2012 >>>> @@ -180,7 +180,8 @@ public class MDC { >>>> Hashtable ht = (Hashtable) ((ThreadLocalMap)tlm).get(); >>>> if(ht != null) { >>>> ht.clear(); >>>> - } >>>> + } >>>> + ((ThreadLocalMap)tlm).remove(); >>>> } >>>> } >>>> >>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> >> >> >> -- >> http://www.grobmeier.de >> https://www.timeandbill.de >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > -- http://www.grobmeier.de https://www.timeandbill.de --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
