[
https://issues.apache.org/jira/browse/OPENJPA-1193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Minor updated OPENJPA-1193:
---------------------------------
Attachment: fix-finalizing-broker-memory-leak.patch
Attached is the patch that I believe was the original intent of this code, as
mentioned in the thread for this issue:
http://n2.nabble.com/Re-FW-Memory-leak-td3300148.html
Since the original checkin cites an improvement for non-finalizing brokers, I
believe the concurrent hash map (plus code to remove the brokers from the hash
map when being freed) was meant for the non-finalizing broker, but a missing !
reversed the logic.
> Memory leak when using FinalizingBrokerImpl
> -------------------------------------------
>
> Key: OPENJPA-1193
> URL: https://issues.apache.org/jira/browse/OPENJPA-1193
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 1.2.0, 1.2.1
> Environment: All environments where the finalizing broker is used
> Reporter: David Minor
> Fix For: 1.3.0, 2.0.0
>
> Attachments: fix-finalizing-broker-memory-leak.patch
>
>
> When FinalizingBrokerImpl is used, AbstractBrokerFactory uses a set backed by
> java's ConcurrentHashMap to keep track of brokers, rather than a weak
> reference org.apache.openjpa.lib.util.concurrent.ConcurrentReferenceHashSet
> as it did previously. This can lead to a memory leak if the brokers are never
> removed from the Set.
> The change was originally checked in by Patrick Linskey in revision 653000
> with the comment "Improve concurrency by actively managing
> AbstractBrokerFactory's broker set when using non-finalizing brokers. Credit
> goes to Arunabh Hazarika for identifying the bottleneck and prototyping this
> solution."
> Changing the _brokers Set back to a weak reference ConcurrentReferenceHashSet
> fixes the memory leak.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.