|
|
|
|
@@ -73,7 +73,7 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
|
|
|
|
|
@AfterEach
|
|
|
|
|
public void verifyTransactionSynchronizationManagerState() {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.getResourceMap().isEmpty()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.getResourceMap()).isEmpty();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
|
|
|
|
|
@@ -87,8 +87,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
Object result = tt.execute(status -> {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
@@ -97,8 +97,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
});
|
|
|
|
|
assertThat(result).isSameAs(l);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx).commit();
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
@@ -114,8 +114,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
Object result = tt.execute(status -> {
|
|
|
|
|
@@ -127,11 +127,11 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
}
|
|
|
|
|
catch (TransactionSystemException tse) {
|
|
|
|
|
// expected
|
|
|
|
|
assertThat(tse.getCause() instanceof RollbackException).isTrue();
|
|
|
|
|
assertThat(tse.getCause()).isInstanceOf(RollbackException.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
verify(manager).close();
|
|
|
|
|
@@ -145,8 +145,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
assertThatRuntimeException().isThrownBy(() ->
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
@@ -155,8 +155,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
throw new RuntimeException("some exception");
|
|
|
|
|
})).withMessage("some exception");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx).rollback();
|
|
|
|
|
verify(manager).close();
|
|
|
|
|
@@ -169,8 +169,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
assertThatRuntimeException().isThrownBy(() ->
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
@@ -179,8 +179,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
throw new RuntimeException("some exception");
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).close();
|
|
|
|
|
}
|
|
|
|
|
@@ -193,8 +193,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
@@ -205,8 +205,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
return l;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
verify(tx).rollback();
|
|
|
|
|
@@ -220,8 +220,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
@@ -232,8 +232,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
verify(tx).commit();
|
|
|
|
|
@@ -248,8 +248,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
assertThatRuntimeException().isThrownBy(() ->
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
@@ -260,8 +260,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
});
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx).setRollbackOnly();
|
|
|
|
|
verify(tx).rollback();
|
|
|
|
|
@@ -278,8 +278,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
assertThatExceptionOfType(TransactionSystemException.class).isThrownBy(() ->
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
@@ -293,8 +293,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
}))
|
|
|
|
|
.withCauseInstanceOf(RollbackException.class);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
verify(tx).setRollbackOnly();
|
|
|
|
|
@@ -312,8 +312,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
Object result = tt.execute(status -> {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
@@ -324,8 +324,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
});
|
|
|
|
|
assertThat(result).isSameAs(l);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
verify(manager, times(2)).close();
|
|
|
|
|
@@ -341,8 +341,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
TransactionSynchronizationManager.bindResource(factory, new EntityManagerHolder(manager));
|
|
|
|
|
|
|
|
|
|
@@ -362,8 +362,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
TransactionSynchronizationManager.unbindResource(factory);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx, times(2)).begin();
|
|
|
|
|
verify(tx, times(2)).commit();
|
|
|
|
|
@@ -380,8 +380,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
Object result = tt.execute(status -> {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
@@ -394,8 +394,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
});
|
|
|
|
|
assertThat(result).isSameAs(l);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx).commit();
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
@@ -413,8 +413,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
Object result = tt.execute(status -> {
|
|
|
|
|
EntityManagerFactoryUtils.getTransactionalEntityManager(factory);
|
|
|
|
|
@@ -429,8 +429,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
});
|
|
|
|
|
assertThat(result).isSameAs(l);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx).commit();
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
@@ -449,8 +449,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
given(manager2.getTransaction()).willReturn(tx2);
|
|
|
|
|
given(manager2.isOpen()).willReturn(true);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
|
|
|
|
|
@@ -466,8 +466,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx).commit();
|
|
|
|
|
verify(tx2).begin();
|
|
|
|
|
@@ -487,20 +487,20 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
|
|
|
|
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
Object result = tt.execute(status -> {
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(!status.isNewTransaction()).isTrue();
|
|
|
|
|
assertThat(status.isNewTransaction()).isFalse();
|
|
|
|
|
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
|
|
|
|
|
return l;
|
|
|
|
|
});
|
|
|
|
|
assertThat(result).isSameAs(l);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
verify(manager).close();
|
|
|
|
|
@@ -512,20 +512,20 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
|
|
|
|
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(!status.isNewTransaction()).isTrue();
|
|
|
|
|
assertThat(status.isNewTransaction()).isFalse();
|
|
|
|
|
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
|
|
|
|
|
status.setRollbackOnly();
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
verify(manager).close();
|
|
|
|
|
@@ -538,8 +538,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
final List<String> l = new ArrayList<>();
|
|
|
|
|
l.add("test");
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
TransactionSynchronizationManager.bindResource(factory, new EntityManagerHolder(manager));
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
@@ -552,7 +552,7 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
assertThat(result).isSameAs(l);
|
|
|
|
|
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
}
|
|
|
|
|
finally {
|
|
|
|
|
TransactionSynchronizationManager.unbindResource(factory);
|
|
|
|
|
@@ -567,8 +567,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
given(manager.getTransaction()).willReturn(tx);
|
|
|
|
|
given(tx.isActive()).willReturn(true);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
TransactionSynchronizationManager.bindResource(factory, new EntityManagerHolder(manager));
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
@@ -581,7 +581,7 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
}
|
|
|
|
|
finally {
|
|
|
|
|
TransactionSynchronizationManager.unbindResource(factory);
|
|
|
|
|
@@ -599,22 +599,22 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
|
|
|
|
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
TransactionSynchronizationManager.bindResource(factory, new EntityManagerHolder(manager));
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
Object result = tt.execute(status -> {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(!status.isNewTransaction()).isTrue();
|
|
|
|
|
assertThat(status.isNewTransaction()).isFalse();
|
|
|
|
|
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
|
|
|
|
|
return l;
|
|
|
|
|
});
|
|
|
|
|
assertThat(result).isSameAs(l);
|
|
|
|
|
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
}
|
|
|
|
|
finally {
|
|
|
|
|
TransactionSynchronizationManager.unbindResource(factory);
|
|
|
|
|
@@ -627,22 +627,22 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
public void testTransactionRollbackWithPreboundAndPropagationSupports() {
|
|
|
|
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
TransactionSynchronizationManager.bindResource(factory, new EntityManagerHolder(manager));
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
tt.execute(status -> {
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(!status.isNewTransaction()).isTrue();
|
|
|
|
|
assertThat(status.isNewTransaction()).isFalse();
|
|
|
|
|
EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush();
|
|
|
|
|
status.setRollbackOnly();
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
}
|
|
|
|
|
finally {
|
|
|
|
|
TransactionSynchronizationManager.unbindResource(factory);
|
|
|
|
|
@@ -672,8 +672,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
public void testTransactionFlush() {
|
|
|
|
|
given(manager.getTransaction()).willReturn(tx);
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
tt.execute(new TransactionCallbackWithoutResult() {
|
|
|
|
|
@Override
|
|
|
|
|
@@ -683,8 +683,8 @@ public class JpaTransactionManagerTests {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.hasResource(factory)).isTrue();
|
|
|
|
|
assertThat(!TransactionSynchronizationManager.isSynchronizationActive()).isTrue();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
|
|
|
|
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
|
|
|
|
|
|
|
|
|
verify(tx).commit();
|
|
|
|
|
verify(manager).flush();
|
|
|
|
|
|