You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2015/08/05 17:43:43 UTC
deltaspike git commit: DELTASPIKE-975 fixed cleanup of
dependent-scoped EntityManagerResolver
Repository: deltaspike
Updated Branches:
refs/heads/master 5895eb73b -> f7c0f1b3f
DELTASPIKE-975 fixed cleanup of dependent-scoped EntityManagerResolver
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/f7c0f1b3
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/f7c0f1b3
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/f7c0f1b3
Branch: refs/heads/master
Commit: f7c0f1b3f9ea21ecc341818151903983387c8147
Parents: 5895eb7
Author: gpetracek <gp...@apache.org>
Authored: Wed Aug 5 17:38:20 2015 +0200
Committer: gpetracek <gp...@apache.org>
Committed: Wed Aug 5 17:42:29 2015 +0200
----------------------------------------------------------------------
.../data/impl/handler/EntityManagerLookup.java | 12 +++++++++++-
.../deltaspike/data/impl/handler/QueryHandler.java | 1 +
2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/f7c0f1b3/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
index 4554497..3a78393 100644
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/EntityManagerLookup.java
@@ -36,6 +36,8 @@ public class EntityManagerLookup
@Any
private Instance<EntityManager> entityManager;
+ private DependentProvider<? extends EntityManagerResolver> dependentResolverProvider;
+
public EntityManager lookupFor(final RepositoryComponent repository)
{
EntityManager result = null;
@@ -45,8 +47,8 @@ public class EntityManagerLookup
if (!repository.isEntityManagerResolverIsNormalScope())
{
final DependentProvider<? extends EntityManagerResolver> resolver = lookupResolver(emrc);
+ dependentResolverProvider = resolver;
result = resolver.get().resolveEntityManager();
- resolver.destroy();
}
else
{
@@ -64,6 +66,14 @@ public class EntityManagerLookup
return result;
}
+ public void release()
+ {
+ if (dependentResolverProvider != null)
+ {
+ dependentResolverProvider.destroy();
+ }
+ }
+
private DependentProvider<? extends EntityManagerResolver> lookupResolver(
Class<? extends EntityManagerResolver> resolverClass)
{
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/f7c0f1b3/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
index 6b6ddb5..0501a4f 100755
--- a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
+++ b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/handler/QueryHandler.java
@@ -94,6 +94,7 @@ public class QueryHandler implements Serializable, InvocationHandler
}
finally
{
+ entityManagerLookup.release();
context.dispose();
}
}