[ http://issues.apache.org/jira/browse/JCR-395?page=all ]

Jukka Zitting updated JCR-395:
------------------------------

    Fix Version: 1.0.1
                     (was: 1.1)
        Version: 0.9
                 1.0

Merged for 1.0.1 in revision 409542.

> Using transactions leads to memory leak
> ---------------------------------------
>
>          Key: JCR-395
>          URL: http://issues.apache.org/jira/browse/JCR-395
>      Project: Jackrabbit
>         Type: Bug

>   Components: transactions
>     Versions: 1.0, 0.9
>     Reporter: Przemo Pakulski
>     Assignee: Tobias Bocanegra
>      Fix For: 1.0.1

>
> There is global static map in XASessionImpl class which stores all Xids and 
> TransactionContexts
>     /**
>      * Global transactions
>      */
>     private static final Map txGlobal = new HashMap();
> It looks like this map is never cleared, even after end of transaction. It 
> leads to memory leak because TransactionContexts and all nested objects 
> (including XASessionImpl) are still referenced and couldn't be freed.
> Proposed solution : Is it posssible to add just single line which will remove 
> TransactionContext from static map at the end of transaction ?
>       if (flags == TMSUCCESS || flags == TMFAIL) {
>             associate(null);
> -->       txGlobal.remove(xid);
>         } else  if (flags == TMSUSPEND) {
>             associate(null);
>         } else {
>             throw new XAException(XAException.XAER_INVAL);
>         }
> If this is not acceptable, then we have to unreference TransactionContext in 
> another way.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to