[ 
https://issues.apache.org/jira/browse/TRANSACTION-33?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oliver Zeigermann resolved TRANSACTION-33.
------------------------------------------

    Resolution: Fixed

Patch committed to 

https://svn.apache.org/repos/asf/commons/proper/transaction/branches/TRANSACTION_2

Thanks!

> Possible Memory Leak
> --------------------
>
>                 Key: TRANSACTION-33
>                 URL: https://issues.apache.org/jira/browse/TRANSACTION-33
>             Project: Commons Transaction
>          Issue Type: Bug
>    Affects Versions: 2.0
>         Environment: ubuntu hardy heron, tomcat, java 1.6
>            Reporter: shishir sharma
>            Assignee: Oliver Zeigermann
>            Priority: Blocker
>             Fix For: 2.0
>
>         Attachments: CommonTransactions_2.0.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> I have been using 2.0 version of library available mainly for hierarchical 
> locking issues. Apart from few other minor issues, it has been working pretty 
> fine. I recently observed heap size issues with my environments and while 
> investigating that I found that my piece of code using 
> DefaultHierarchicalManager.java is among the top three heap consumers at that 
> time.
> Upon analysing the heap a bit more (and going through the code of transaction 
> 2.0), I found that we are not emptying a hashmap in RWLockManager.java. As a 
> result, it holds onto references and corresponding objects are never garbage 
> collected. Please review the following patch and let me know if it is ok or 
> not.
> Thanks,
> Shishir
> toshishirsharma[AT]gmail[DOT]com
> =====  patch start =====
> diff -rub 
> branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java
>  
> branches_mod/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java
> --- 
> branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java
>    2009-09-01 20:05:29.000000000 -0500
> +++ 
> branches_mod/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/RWLockManager.java
>        2009-09-01 21:13:35.000000000 -0500
> @@ -66,6 +66,7 @@
>          removeUnsuedLocks();
>          locksForThreads.remove(Thread.currentThread());
> +        effectiveGlobalTimeouts.remove(Thread.currentThread());
>      }
>      protected void removeUnsuedLocks() {
> diff -rub 
> branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/SimpleLockManager.java
>  
> branches_mod/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/SimpleLockManager.java
> --- 
> branches/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/SimpleLockManager.java
>        2009-09-01 20:05:29.000000000 -0500
> +++ 
> branches_mod/TRANSACTION_2/src/java/org/apache/commons/transaction/locking/SimpleLockManager.java
>    2009-09-01 21:13:05.000000000 -0500
> @@ -108,6 +108,7 @@
>          }
>          locksForThreads.remove(Thread.currentThread());
> +        effectiveGlobalTimeouts.remove(Thread.currentThread());
>      }
>  }
> =====  patch end =====

-- 
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