+1.  I'll do it.

Jeff Butler


On Fri, Oct 3, 2008 at 8:52 AM, Kai Grabfelder (JIRA)
<[EMAIL PROTECTED]> wrote:
>
>    [ 
> https://issues.apache.org/jira/browse/IBATIS-540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12636636#action_12636636
>  ]
>
> Kai Grabfelder commented on IBATIS-540:
> ---------------------------------------
>
> cool, then I guess it is save to apply it ;-). @Devs? What do you think?
>
>> Classloader memory leak because of ThreadLocal in ResultObjectFactoryUtil
>> -------------------------------------------------------------------------
>>
>>                 Key: IBATIS-540
>>                 URL: https://issues.apache.org/jira/browse/IBATIS-540
>>             Project: iBatis for Java
>>          Issue Type: Bug
>>          Components: SQL Maps
>>    Affects Versions: 2.3.3, 2.3.4
>>            Reporter: Sylvain Laurent
>>         Attachments: ibatis patch for classloader memleak.txt
>>
>>
>> I'm using iBatis in a webapp with Spring and facing memory leaks upon 
>> redeployment oft he webapp.
>> I tracked the leaks to ibatis, where the class ResultObjectFactoryUtil has a 
>> static ThreadLocal factorySettings
>> The problem is that the value bound to a Thread through this ThreadLocal is 
>> never nullified, and since the "factorySettings" is a static variable, the 
>> ThreadLocal instance is reachable as long as the ClassLoader of the webapp 
>> is reachable. But since the FactorySettings instance is bound to the Thread 
>> through a strong reference (see the JDK implementation of ThreadLocal in 
>> ThreadLocalMap$Entry), the classloader is finally never collected...
>> The solution is to always cleanup the ThreadLocal after usage (in 
>> SqlExecurtor)
>> I attach a patch for iBatis 2.3.4 to this issue
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>

Reply via email to