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 2017/06/01 13:52:24 UTC

deltaspike git commit: DELTASPIKE-1258 skip #flush before #commit with one active EntityManager

Repository: deltaspike
Updated Branches:
  refs/heads/master 9a371a22c -> e6b119c70


DELTASPIKE-1258 skip #flush before #commit with one active EntityManager


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

Branch: refs/heads/master
Commit: e6b119c708bd684c7800faa5c86c1aafb110d723
Parents: 9a371a2
Author: gpetracek <gp...@apache.org>
Authored: Thu Jun 1 15:09:27 2017 +0200
Committer: gpetracek <gp...@apache.org>
Committed: Thu Jun 1 15:48:16 2017 +0200

----------------------------------------------------------------------
 .../jpa/impl/transaction/ResourceLocalTransactionStrategy.java | 2 +-
 .../deltaspike/test/jpa/api/shared/TestEntityManager.java      | 6 +++++-
 .../deltaspike/test/jpa/api/shared/TestEntityTransaction.java  | 5 ++++-
 .../defaultinjection/FailedFlushTransactionalBean.java         | 3 +++
 4 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e6b119c7/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 9e810a8..6f11a8b 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
@@ -193,7 +193,7 @@ public class ResourceLocalTransactionStrategy implements TransactionStrategy
 
                         boolean rollbackOnly = isRollbackOnly(transactionalAnnotation);
 
-                        if (!rollbackOnly)
+                        if (!rollbackOnly && entityManagerEntryList.size() > 1)
                         {
                             // but first try to flush all the transactions and write the updates to the database
                             for (EntityManagerEntry currentEntityManagerEntry : entityManagerEntryList)

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e6b119c7/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityManager.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityManager.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityManager.java
index 44654f5..343624b 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityManager.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityManager.java
@@ -34,7 +34,7 @@ import java.util.Map;
 @Typed()
 public class TestEntityManager implements EntityManager
 {
-    private EntityTransaction entityTransaction = new TestEntityTransaction();
+    private EntityTransaction entityTransaction = new TestEntityTransaction(this);
 
     private boolean open = true;
     private boolean flushed = false;
@@ -302,4 +302,8 @@ public class TestEntityManager implements EntityManager
     {
         return flushed;
     }
+
+    public void setFlushed(boolean flushed) {
+        this.flushed = flushed;
+    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e6b119c7/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityTransaction.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityTransaction.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityTransaction.java
index 870d692..27d92b7 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityTransaction.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/shared/TestEntityTransaction.java
@@ -26,9 +26,11 @@ public class TestEntityTransaction implements EntityTransaction
     private boolean committed = false;
     private boolean rolledBack = false;
     private boolean markRolledBack = false;
+    private TestEntityManager testEntityManager;
 
-    public TestEntityTransaction()
+    public TestEntityTransaction(TestEntityManager testEntityManager)
     {
+        this.testEntityManager = testEntityManager;
     }
 
     @Override
@@ -46,6 +48,7 @@ public class TestEntityTransaction implements EntityTransaction
     public void commit()
     {
         committed = true;
+        testEntityManager.setFlushed(true);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e6b119c7/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/FailedFlushTransactionalBean.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/FailedFlushTransactionalBean.java b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/FailedFlushTransactionalBean.java
index 3139773..5e5ec5b 100644
--- a/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/FailedFlushTransactionalBean.java
+++ b/deltaspike/modules/jpa/impl/src/test/java/org/apache/deltaspike/test/jpa/api/transactional/defaultinjection/FailedFlushTransactionalBean.java
@@ -31,6 +31,9 @@ public class FailedFlushTransactionalBean
     @Failed
     private EntityManager entityManager;
 
+    @Inject
+    private EntityManager validEntityManager; //just needed, because we only flush in case of multiple entity-managers
+
     @Transactional
     public void executeInTransaction()
     {