On Sat, Jan 14, 2012 at 11:31 PM, Ralph Goers
<[email protected]> wrote:
> I really don't think it is worth upgrading Log4j 1.x. I'm sure it is used in 
> a lot of places because it supports old JDKs where SLF4J and Logback can't be 
> used.
>
> Log4j 2.0 has a minimum version of Java 5. It really is at the point where it 
> should be moved out of my private branch anyway.  At this point I'm working 
> on documentation and a large part of that is written.
>
> What you can do is have a method somewhere that returns the Java version as 
> an int and then test for javaVersion >= 5 before doing the remove. Then you 
> would require Java 5 to compile but not to run. To compile with a lesser 
> version you'd have to use Method.invoke().  IIRC Curt did something similar 
> to that in ExtendedThrowableRenderer to take advantage of being able to get 
> access to StackTraceElements instead of parsing the stack trace.

Thats a good idea! I will try to find out about the javaVersion and
fix the fix. Then only 1.3/4 users have the leak - they probably are
used to it.

Cheers
Christian

>
> Ralph
>
> On Jan 14, 2012, at 1:49 PM, Christian Grobmeier wrote:
>
>> 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]
>>
>
>
> ---------------------------------------------------------------------
> 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]

Reply via email to