You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2010/08/09 23:32:17 UTC
[jira] Resolved: (OPENJPA-1713) OutOfMemory caused by
EntityManagerImpl.push/popFetchPlan processing
[ https://issues.apache.org/jira/browse/OPENJPA-1713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Albert Lee resolved OPENJPA-1713.
---------------------------------
Resolution: Fixed
> OutOfMemory caused by EntityManagerImpl.push/popFetchPlan processing
> --------------------------------------------------------------------
>
> Key: OPENJPA-1713
> URL: https://issues.apache.org/jira/browse/OPENJPA-1713
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 1.1.0, 1.2.2, 2.0.0
> Reporter: Albert Lee
> Assignee: Albert Lee
> Fix For: 2.0.1, 2.1.0
>
>
> There is a leak in memory in the EntityManagerImpl push/popFetchPlan processing where fetch plan associated with the current fetch configuration is add to the _plans IdentityHashMap but never remove from it.
> private Map<FetchConfiguration,FetchPlan> _plans = new IdentityHashMap<FetchConfiguration,FetchPlan>(1);
> public FetchPlan getFetchPlan() {
> assertNotCloseInvoked();
> _broker.lock();
> try {
> FetchConfiguration fc = _broker.getFetchConfiguration();
> FetchPlan fp = _plans.get(fc);
> if (fp == null) {
> fp = _emf.toFetchPlan(_broker, fc);
> _plans.put(fc, fp); <<< added to _plans
> }
> return fp;
> } finally {
> _broker.unlock();
> }
> }
> public FetchPlan pushFetchPlan() {
> assertNotCloseInvoked();
> _broker.lock();
> try {
> _broker.pushFetchConfiguration();
> return getFetchPlan();
> } finally {
> _broker.unlock();
> }
> }
> public void popFetchPlan() {
> assertNotCloseInvoked();
> _broker.lock();
> try {
> _broker.popFetchConfiguration(); <<< but never remove when the fetch plan is popped.
> } finally {
> _broker.unlock();
> }
> }
> The only time _plans is cleaned up are during clear() or closed().
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.