You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/03/26 14:00:40 UTC

tomee git commit: openejb.jpa.query.wrap-no-tx flag to control wrapping or not of not jta queries from jta entity manager

Repository: tomee
Updated Branches:
  refs/heads/tomee-1.7.x 5d57a556c -> d7b4a7bba


openejb.jpa.query.wrap-no-tx flag to control wrapping or not of not jta queries from jta entity manager


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/d7b4a7bb
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/d7b4a7bb
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/d7b4a7bb

Branch: refs/heads/tomee-1.7.x
Commit: d7b4a7bba2df6d5b8d513f5a38c259c78f2e0656
Parents: 5d57a55
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Thu Mar 26 14:00:32 2015 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Thu Mar 26 14:00:32 2015 +0100

----------------------------------------------------------------------
 .../org/apache/openejb/persistence/JtaEntityManager.java    | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/d7b4a7bb/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
index 5151885..1dfb8b8 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
@@ -18,6 +18,7 @@
 package org.apache.openejb.persistence;
 
 import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory;
 import org.apache.openejb.core.ivm.IntraVmArtifact;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
@@ -72,6 +73,7 @@ public class JtaEntityManager implements EntityManager, Serializable {
     private final boolean extended;
     private final String unitName;
     private final Logger logger;
+    private final boolean wrapNoTxQueries;
 
     public JtaEntityManager(final JtaEntityManagerRegistry registry, final EntityManagerFactory entityManagerFactory, final Map properties, final String unitName) {
         this(unitName, registry, entityManagerFactory, properties, false);
@@ -90,6 +92,9 @@ public class JtaEntityManager implements EntityManager, Serializable {
         this.properties = properties;
         this.extended = extended;
         logger = unitName == null ? baseLogger : baseLogger.getChildLogger(unitName);
+        final String wrapConfig = ReloadableEntityManagerFactory.class.isInstance(entityManagerFactory) ?
+                ReloadableEntityManagerFactory.class.cast(entityManagerFactory).getUnitProperties().getProperty("openejb.jpa.query.wrap-no-tx", "true") : "true";
+        this.wrapNoTxQueries = wrapConfig == null || "true".equalsIgnoreCase(wrapConfig);
     }
 
     EntityManager getEntityManager() {
@@ -320,14 +325,14 @@ public class JtaEntityManager implements EntityManager, Serializable {
     }
 
     private Query proxyIfNoTx(final Method method, final Object... args) {
-        if (!extended && !isTransactionActive()) {
+        if (wrapNoTxQueries && !extended && !isTransactionActive()) {
             return new JtaQuery(getEntityManager(), this, method, args);
         }
         return createQuery(Query.class, getEntityManager(), method, args);
     }
 
     private <T> TypedQuery<T> typedProxyIfNoTx(final Method method, final Object... args) {
-        if (!extended && !isTransactionActive()) {
+        if (wrapNoTxQueries && !extended && !isTransactionActive()) {
             return new JtaTypedQuery<T>(getEntityManager(), this, method, args);
         }
         return createQuery(TypedQuery.class, getEntityManager(), method, args);