[ 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