Repository: deltaspike
Updated Branches:
  refs/heads/master 7bd3c1d53 -> 94776b098


DELTASPIKE-900: commit tx if we started it


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

Branch: refs/heads/master
Commit: 94776b09867fdea0875f3e3ca98f68a62f43e707
Parents: 7bd3c1d
Author: Alexander Falb <el...@apache.org>
Authored: Wed Aug 22 16:46:24 2018 +0200
Committer: Alexander Falb <el...@apache.org>
Committed: Mon Sep 3 12:33:14 2018 +0200

----------------------------------------------------------------------
 .../transaction/ResourceLocalTransactionStrategy.java   | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/94776b09/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/ResourceLocalTransactionStrategy.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/ResourceLocalTransactionStrategy.java
 
b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/ResourceLocalTransactionStrategy.java
index 4c9cb7b..f21bd8c 100644
--- 
a/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/ResourceLocalTransactionStrategy.java
+++ 
b/deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/transaction/ResourceLocalTransactionStrategy.java
@@ -92,7 +92,7 @@ public class ResourceLocalTransactionStrategy implements 
TransactionStrategy
         TransactionBeanStorage transactionBeanStorage = 
TransactionBeanStorage.getInstance();
 
         boolean isOutermostInterceptor = transactionBeanStorage.isEmpty();
-        boolean outermostTransactionAlreadyExisted = false;
+        boolean startedTransaction = false;
 
         if (isOutermostInterceptor)
         {
@@ -111,7 +111,6 @@ public class ResourceLocalTransactionStrategy implements 
TransactionStrategy
             for (Class<? extends Annotation> emQualifier : emQualifiers)
             {
                 EntityManager entityManager = 
resolveEntityManagerForQualifier(emQualifier);
-
                 EntityManagerEntry entityManagerEntry = 
createEntityManagerEntry(entityManager, emQualifier);
                 
transactionBeanStorage.storeUsedEntityManager(entityManagerEntry);
 
@@ -121,10 +120,7 @@ public class ResourceLocalTransactionStrategy implements 
TransactionStrategy
                 {
                     beforeBegin(invocationContext, entityManagerEntry, 
transaction);
                     transaction.begin();
-                }
-                else if (isOutermostInterceptor)
-                {
-                    outermostTransactionAlreadyExisted = true;
+                    startedTransaction = true;
                 }
 
                 //don't move it before EntityTransaction#begin() and invoke it 
in any case
@@ -144,7 +140,7 @@ public class ResourceLocalTransactionStrategy implements 
TransactionStrategy
                 Set<EntityManagerEntry> entityManagerEntryList =
                     transactionBeanStorage.getUsedEntityManagerEntries();
 
-                if (!outermostTransactionAlreadyExisted)
+                if (startedTransaction)
                 {
                     // We only commit transactions we opened ourselfs.
                     // If the transaction got opened outside of our 
interceptor chain
@@ -177,7 +173,7 @@ public class ResourceLocalTransactionStrategy implements 
TransactionStrategy
             // In case of JTA we will just commit the UserTransaction.
             if (isOutermostInterceptor)
             {
-                if (!outermostTransactionAlreadyExisted)
+                if (startedTransaction)
                 {
                     // We only commit transactions we opened ourselfs.
                     // If the transaction got opened outside of our 
interceptor chain

Reply via email to