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()
{