Polishing
This commit is contained in:
parent
8e8c3f5a7c
commit
35c7e3960e
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2022 the original author or authors.
|
* Copyright 2002-2023 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -64,9 +64,10 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specify the maximum time allotted in milliseconds for the shutdown of
|
* Specify the maximum time allotted in milliseconds for the shutdown of any
|
||||||
* any phase (group of SmartLifecycle beans with the same 'phase' value).
|
* phase (group of {@link SmartLifecycle} beans with the same 'phase' value).
|
||||||
* <p>The default value is 30000 milliseconds (30 seconds).
|
* <p>The default value is 30000 milliseconds (30 seconds).
|
||||||
|
* @see SmartLifecycle#getPhase()
|
||||||
*/
|
*/
|
||||||
public void setTimeoutPerShutdownPhase(long timeoutPerShutdownPhase) {
|
public void setTimeoutPerShutdownPhase(long timeoutPerShutdownPhase) {
|
||||||
this.timeoutPerShutdownPhase = timeoutPerShutdownPhase;
|
this.timeoutPerShutdownPhase = timeoutPerShutdownPhase;
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
public void verifyTransactionSynchronizationManagerState() {
|
public void verifyTransactionSynchronizationManagerState() {
|
||||||
assertThat(TransactionSynchronizationManager.getResourceMap().isEmpty()).isTrue();
|
assertThat(TransactionSynchronizationManager.getResourceMap()).isEmpty();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
|
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
|
||||||
|
|
@ -136,10 +136,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
final DataSource dsToUse = (lazyConnection ? new LazyConnectionDataSourceProxy(ds) : ds);
|
final DataSource dsToUse = (lazyConnection ? new LazyConnectionDataSourceProxy(ds) : ds);
|
||||||
tm = new DataSourceTransactionManager(dsToUse);
|
tm = new DataSourceTransactionManager(dsToUse);
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
boolean condition3 = !TransactionSynchronizationManager.hasResource(dsToUse);
|
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition3).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition2 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition2).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -165,10 +163,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(dsToUse);
|
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
if (autoCommit && (!lazyConnection || createStatement)) {
|
if (autoCommit && (!lazyConnection || createStatement)) {
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
|
|
@ -229,10 +225,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
final DataSource dsToUse = (lazyConnection ? new LazyConnectionDataSourceProxy(ds) : ds);
|
final DataSource dsToUse = (lazyConnection ? new LazyConnectionDataSourceProxy(ds) : ds);
|
||||||
tm = new DataSourceTransactionManager(dsToUse);
|
tm = new DataSourceTransactionManager(dsToUse);
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
boolean condition3 = !TransactionSynchronizationManager.hasResource(dsToUse);
|
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition3).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition2 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition2).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
final RuntimeException ex = new RuntimeException("Application exception");
|
final RuntimeException ex = new RuntimeException("Application exception");
|
||||||
assertThatRuntimeException().isThrownBy(() ->
|
assertThatRuntimeException().isThrownBy(() ->
|
||||||
|
|
@ -256,10 +250,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
}))
|
}))
|
||||||
.isEqualTo(ex);
|
.isEqualTo(ex);
|
||||||
|
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
if (autoCommit && (!lazyConnection || createStatement)) {
|
if (autoCommit && (!lazyConnection || createStatement)) {
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
|
|
@ -279,10 +271,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testTransactionRollbackOnly() throws Exception {
|
public void testTransactionRollbackOnly() throws Exception {
|
||||||
tm.setTransactionSynchronization(DataSourceTransactionManager.SYNCHRONIZATION_NEVER);
|
tm.setTransactionSynchronization(DataSourceTransactionManager.SYNCHRONIZATION_NEVER);
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
ConnectionHolder conHolder = new ConnectionHolder(con, true);
|
ConnectionHolder conHolder = new ConnectionHolder(con, true);
|
||||||
TransactionSynchronizationManager.bindResource(ds, conHolder);
|
TransactionSynchronizationManager.bindResource(ds, conHolder);
|
||||||
|
|
@ -292,10 +282,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
boolean condition = !status.isNewTransaction();
|
|
||||||
assertThat(condition).as("Is existing transaction").isTrue();
|
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -303,16 +291,14 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
catch (RuntimeException ex2) {
|
catch (RuntimeException ex2) {
|
||||||
// expected
|
// expected
|
||||||
boolean condition = !TransactionSynchronizationManager.isSynchronizationActive();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
assertThat(condition).as("Synchronization not active").isTrue();
|
|
||||||
assertThat(ex2).as("Correct exception thrown").isEqualTo(ex);
|
assertThat(ex2).as("Correct exception thrown").isEqualTo(ex);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
TransactionSynchronizationManager.unbindResource(ds);
|
TransactionSynchronizationManager.unbindResource(ds);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -330,10 +316,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
if (failEarly) {
|
if (failEarly) {
|
||||||
tm.setFailEarlyOnGlobalRollbackOnly(true);
|
tm.setFailEarlyOnGlobalRollbackOnly(true);
|
||||||
}
|
}
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
||||||
TestTransactionSynchronization synch =
|
TestTransactionSynchronization synch =
|
||||||
|
|
@ -348,21 +332,18 @@ public class DataSourceTransactionManagerTests {
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
boolean condition1 = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
assertThat(condition1).as("Is existing transaction").isTrue();
|
|
||||||
assertThat(status.isRollbackOnly()).as("Is not rollback-only").isFalse();
|
assertThat(status.isRollbackOnly()).as("Is not rollback-only").isFalse();
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
assertThat(condition).as("Is existing transaction").isTrue();
|
|
||||||
status.setRollbackOnly();
|
status.setRollbackOnly();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
assertThat(condition).as("Is existing transaction").isTrue();
|
|
||||||
assertThat(status.isRollbackOnly()).as("Is rollback-only").isTrue();
|
assertThat(status.isRollbackOnly()).as("Is rollback-only").isTrue();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -385,8 +366,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
assertThat(synch.beforeCommitCalled).isFalse();
|
assertThat(synch.beforeCommitCalled).isFalse();
|
||||||
assertThat(synch.beforeCompletionCalled).isTrue();
|
assertThat(synch.beforeCompletionCalled).isTrue();
|
||||||
assertThat(synch.afterCommitCalled).isFalse();
|
assertThat(synch.afterCommitCalled).isFalse();
|
||||||
|
|
@ -399,10 +379,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testParticipatingTransactionWithIncompatibleIsolationLevel() throws Exception {
|
public void testParticipatingTransactionWithIncompatibleIsolationLevel() throws Exception {
|
||||||
tm.setValidateExistingTransaction(true);
|
tm.setValidateExistingTransaction(true);
|
||||||
|
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
|
|
@ -424,8 +402,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback();
|
verify(con).rollback();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
@ -435,10 +412,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
willThrow(new SQLException("read-only not supported")).given(con).setReadOnly(true);
|
willThrow(new SQLException("read-only not supported")).given(con).setReadOnly(true);
|
||||||
tm.setValidateExistingTransaction(true);
|
tm.setValidateExistingTransaction(true);
|
||||||
|
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
|
|
@ -461,18 +436,15 @@ public class DataSourceTransactionManagerTests {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback();
|
verify(con).rollback();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testParticipatingTransactionWithTransactionStartedFromSynch() throws Exception {
|
public void testParticipatingTransactionWithTransactionStartedFromSynch() throws Exception {
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
|
|
@ -498,14 +470,12 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
assertThat(synch.beforeCommitCalled).isTrue();
|
assertThat(synch.beforeCommitCalled).isTrue();
|
||||||
assertThat(synch.beforeCompletionCalled).isTrue();
|
assertThat(synch.beforeCompletionCalled).isTrue();
|
||||||
assertThat(synch.afterCommitCalled).isTrue();
|
assertThat(synch.afterCommitCalled).isTrue();
|
||||||
assertThat(synch.afterCompletionCalled).isTrue();
|
assertThat(synch.afterCompletionCalled).isTrue();
|
||||||
boolean condition3 = synch.afterCompletionException instanceof IllegalStateException;
|
assertThat(synch.afterCompletionException).isInstanceOf(IllegalStateException.class);
|
||||||
assertThat(condition3).isTrue();
|
|
||||||
verify(con, times(2)).commit();
|
verify(con, times(2)).commit();
|
||||||
verify(con, times(2)).close();
|
verify(con, times(2)).close();
|
||||||
}
|
}
|
||||||
|
|
@ -516,10 +486,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
final Connection con2 = mock();
|
final Connection con2 = mock();
|
||||||
given(ds2.getConnection()).willReturn(con2);
|
given(ds2.getConnection()).willReturn(con2);
|
||||||
|
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
|
|
||||||
|
|
@ -540,8 +508,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
assertThat(synch.beforeCommitCalled).isTrue();
|
assertThat(synch.beforeCommitCalled).isTrue();
|
||||||
assertThat(synch.beforeCompletionCalled).isTrue();
|
assertThat(synch.beforeCompletionCalled).isTrue();
|
||||||
assertThat(synch.afterCommitCalled).isTrue();
|
assertThat(synch.afterCommitCalled).isTrue();
|
||||||
|
|
@ -558,10 +525,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
DataSourceTransactionManager tm2 = new DataSourceTransactionManager(ds);
|
DataSourceTransactionManager tm2 = new DataSourceTransactionManager(ds);
|
||||||
// tm has no synch enabled (used at outer level), tm2 has synch enabled (inner level)
|
// tm has no synch enabled (used at outer level), tm2 has synch enabled (inner level)
|
||||||
|
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
||||||
final TestTransactionSynchronization synch =
|
final TestTransactionSynchronization synch =
|
||||||
|
|
@ -573,21 +538,18 @@ public class DataSourceTransactionManagerTests {
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
boolean condition1 = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
assertThat(condition1).as("Is existing transaction").isTrue();
|
|
||||||
assertThat(status.isRollbackOnly()).as("Is not rollback-only").isFalse();
|
assertThat(status.isRollbackOnly()).as("Is not rollback-only").isFalse();
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
assertThat(condition).as("Is existing transaction").isTrue();
|
|
||||||
status.setRollbackOnly();
|
status.setRollbackOnly();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
assertThat(condition).as("Is existing transaction").isTrue();
|
|
||||||
assertThat(status.isRollbackOnly()).as("Is rollback-only").isTrue();
|
assertThat(status.isRollbackOnly()).as("Is rollback-only").isTrue();
|
||||||
TransactionSynchronizationManager.registerSynchronization(synch);
|
TransactionSynchronizationManager.registerSynchronization(synch);
|
||||||
}
|
}
|
||||||
|
|
@ -596,8 +558,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
tm.commit(ts);
|
tm.commit(ts);
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
assertThat(synch.beforeCommitCalled).isFalse();
|
assertThat(synch.beforeCommitCalled).isFalse();
|
||||||
assertThat(synch.beforeCompletionCalled).isTrue();
|
assertThat(synch.beforeCompletionCalled).isTrue();
|
||||||
assertThat(synch.afterCommitCalled).isFalse();
|
assertThat(synch.afterCommitCalled).isFalse();
|
||||||
|
|
@ -610,10 +571,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testPropagationRequiresNewWithExistingTransaction() throws Exception {
|
public void testPropagationRequiresNewWithExistingTransaction() throws Exception {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -639,8 +598,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback();
|
verify(con).rollback();
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con, times(2)).close();
|
verify(con, times(2)).close();
|
||||||
|
|
@ -659,12 +617,9 @@ public class DataSourceTransactionManagerTests {
|
||||||
final TransactionTemplate tt2 = new TransactionTemplate(tm2);
|
final TransactionTemplate tt2 = new TransactionTemplate(tm2);
|
||||||
tt2.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt2.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
|
|
||||||
boolean condition4 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition4).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
||||||
boolean condition3 = !TransactionSynchronizationManager.hasResource(ds2);
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
assertThat(condition3).as("Hasn't thread connection").isTrue();
|
|
||||||
boolean condition2 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition2).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -690,10 +645,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds2);
|
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
verify(con2).rollback();
|
verify(con2).rollback();
|
||||||
|
|
@ -714,12 +667,9 @@ public class DataSourceTransactionManagerTests {
|
||||||
final TransactionTemplate tt2 = new TransactionTemplate(tm2);
|
final TransactionTemplate tt2 = new TransactionTemplate(tm2);
|
||||||
tt2.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt2.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
|
|
||||||
boolean condition4 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition4).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
||||||
boolean condition3 = !TransactionSynchronizationManager.hasResource(ds2);
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
assertThat(condition3).as("Hasn't thread connection").isTrue();
|
|
||||||
boolean condition2 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition2).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(CannotCreateTransactionException.class).isThrownBy(() ->
|
assertThatExceptionOfType(CannotCreateTransactionException.class).isThrownBy(() ->
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
|
|
@ -738,10 +688,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
})).withCause(failure);
|
})).withCause(failure);
|
||||||
|
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds2);
|
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback();
|
verify(con).rollback();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
@ -750,10 +698,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testPropagationNotSupportedWithExistingTransaction() throws Exception {
|
public void testPropagationNotSupportedWithExistingTransaction() throws Exception {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -765,11 +711,9 @@ public class DataSourceTransactionManagerTests {
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't new transaction").isTrue();
|
|
||||||
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
|
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
|
||||||
status.setRollbackOnly();
|
status.setRollbackOnly();
|
||||||
|
|
@ -781,8 +725,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
@ -791,10 +734,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testPropagationNeverWithExistingTransaction() throws Exception {
|
public void testPropagationNeverWithExistingTransaction() throws Exception {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() ->
|
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() ->
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
|
|
@ -812,8 +753,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback();
|
verify(con).rollback();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
@ -822,10 +762,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testPropagationSupportsAndRequiresNew() throws Exception {
|
public void testPropagationSupportsAndRequiresNew() throws Exception {
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -846,8 +784,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
@ -861,10 +798,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
final
|
final
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -888,8 +823,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con1).close();
|
verify(con1).close();
|
||||||
verify(con2).commit();
|
verify(con2).commit();
|
||||||
verify(con2).close();
|
verify(con2).close();
|
||||||
|
|
@ -904,8 +838,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
|
tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
|
||||||
tt.setReadOnly(true);
|
tt.setReadOnly(true);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) {
|
protected void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
@ -915,8 +848,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
ordered.verify(con).setReadOnly(true);
|
ordered.verify(con).setReadOnly(true);
|
||||||
ordered.verify(con).setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
|
ordered.verify(con).setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
|
||||||
|
|
@ -939,8 +871,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
tt.setReadOnly(true);
|
tt.setReadOnly(true);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) {
|
protected void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
@ -950,8 +881,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
InOrder ordered = inOrder(con, stmt);
|
InOrder ordered = inOrder(con, stmt);
|
||||||
ordered.verify(con).setReadOnly(true);
|
ordered.verify(con).setReadOnly(true);
|
||||||
ordered.verify(con).setAutoCommit(false);
|
ordered.verify(con).setAutoCommit(false);
|
||||||
|
|
@ -973,8 +903,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setTimeout(timeout);
|
tt.setTimeout(timeout);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
|
|
@ -1008,8 +937,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
if (timeout > 1) {
|
if (timeout > 1) {
|
||||||
verify(ps).setQueryTimeout(timeout - 1);
|
verify(ps).setQueryTimeout(timeout - 1);
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
|
|
@ -1029,8 +957,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
given(con.getWarnings()).willThrow(new SQLException());
|
given(con.getWarnings()).willThrow(new SQLException());
|
||||||
|
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) {
|
protected void doInTransactionWithoutResult(TransactionStatus status) {
|
||||||
|
|
@ -1051,8 +978,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
ordered.verify(con).setAutoCommit(false);
|
ordered.verify(con).setAutoCommit(false);
|
||||||
ordered.verify(con).commit();
|
ordered.verify(con).commit();
|
||||||
|
|
@ -1066,8 +992,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1111,8 +1036,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
ordered.verify(con).setAutoCommit(false);
|
ordered.verify(con).setAutoCommit(false);
|
||||||
ordered.verify(con).commit();
|
ordered.verify(con).commit();
|
||||||
|
|
@ -1126,8 +1050,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRES_NEW);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1172,8 +1095,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
ordered.verify(con).setAutoCommit(false);
|
ordered.verify(con).setAutoCommit(false);
|
||||||
ordered.verify(con).commit();
|
ordered.verify(con).commit();
|
||||||
|
|
@ -1197,8 +1119,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1215,8 +1136,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1234,8 +1154,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback();
|
verify(con).rollback();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
@ -1254,8 +1173,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
ordered.verify(con).setAutoCommit(false);
|
ordered.verify(con).setAutoCommit(false);
|
||||||
ordered.verify(con).rollback();
|
ordered.verify(con).rollback();
|
||||||
|
|
@ -1267,65 +1185,53 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testTransactionWithPropagationSupports() throws Exception {
|
public void testTransactionWithPropagationSupports() throws Exception {
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
assertThat(status.isNewTransaction()).as("Is not new transaction").isFalse();
|
||||||
boolean condition = !status.isNewTransaction();
|
|
||||||
assertThat(condition).as("Is not new transaction").isTrue();
|
|
||||||
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
|
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTransactionWithPropagationNotSupported() throws Exception {
|
public void testTransactionWithPropagationNotSupported() throws Exception {
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NOT_SUPPORTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NOT_SUPPORTED);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
assertThat(status.isNewTransaction()).as("Is not new transaction").isFalse();
|
||||||
boolean condition = !status.isNewTransaction();
|
|
||||||
assertThat(condition).as("Is not new transaction").isTrue();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTransactionWithPropagationNever() throws Exception {
|
public void testTransactionWithPropagationNever() throws Exception {
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NEVER);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NEVER);
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
boolean condition1 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition1).as("Hasn't thread connection").isTrue();
|
assertThat(status.isNewTransaction()).as("Is not new transaction").isFalse();
|
||||||
boolean condition = !status.isNewTransaction();
|
|
||||||
assertThat(condition).as("Is not new transaction").isTrue();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -1350,37 +1256,32 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
.isFalse();
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition1 = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition1).as("Isn't nested transaction").isTrue();
|
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't new transaction").isTrue();
|
|
||||||
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't nested transaction").isTrue();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con, times(count)).releaseSavepoint(sp);
|
verify(con, times(count)).releaseSavepoint(sp);
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
|
|
@ -1397,36 +1298,31 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
.isFalse();
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition1 = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition1).as("Isn't nested transaction").isTrue();
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't new transaction").isTrue();
|
|
||||||
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
||||||
status.setRollbackOnly();
|
status.setRollbackOnly();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't nested transaction").isTrue();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback(sp);
|
verify(con).rollback(sp);
|
||||||
verify(con).releaseSavepoint(sp);
|
verify(con).releaseSavepoint(sp);
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
|
|
@ -1444,25 +1340,22 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
.isFalse();
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition1 = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition1).as("Isn't nested transaction").isTrue();
|
|
||||||
assertThatIllegalStateException().isThrownBy(() ->
|
assertThatIllegalStateException().isThrownBy(() ->
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't new transaction").isTrue();
|
|
||||||
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
||||||
TransactionTemplate ntt = new TransactionTemplate(tm);
|
TransactionTemplate ntt = new TransactionTemplate(tm);
|
||||||
ntt.execute(new TransactionCallbackWithoutResult() {
|
ntt.execute(new TransactionCallbackWithoutResult() {
|
||||||
|
|
@ -1470,23 +1363,19 @@ public class DataSourceTransactionManagerTests {
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition1 = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(condition1).as("Isn't new transaction").isTrue();
|
assertThat(status.hasSavepoint()).as("Is regular transaction").isFalse();
|
||||||
boolean condition = !status.hasSavepoint();
|
|
||||||
assertThat(condition).as("Is regular transaction").isTrue();
|
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't nested transaction").isTrue();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback(sp);
|
verify(con).rollback(sp);
|
||||||
verify(con).releaseSavepoint(sp);
|
verify(con).releaseSavepoint(sp);
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
|
|
@ -1504,25 +1393,22 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
.isFalse();
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition1 = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition1).as("Isn't nested transaction").isTrue();
|
|
||||||
assertThatExceptionOfType(UnexpectedRollbackException.class).isThrownBy(() ->
|
assertThatExceptionOfType(UnexpectedRollbackException.class).isThrownBy(() ->
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't new transaction").isTrue();
|
|
||||||
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
assertThat(status.hasSavepoint()).as("Is nested transaction").isTrue();
|
||||||
TransactionTemplate ntt = new TransactionTemplate(tm);
|
TransactionTemplate ntt = new TransactionTemplate(tm);
|
||||||
ntt.execute(new TransactionCallbackWithoutResult() {
|
ntt.execute(new TransactionCallbackWithoutResult() {
|
||||||
|
|
@ -1530,23 +1416,19 @@ public class DataSourceTransactionManagerTests {
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
boolean condition1 = !status.isNewTransaction();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(condition1).as("Isn't new transaction").isTrue();
|
assertThat(status.hasSavepoint()).as("Is regular transaction").isFalse();
|
||||||
boolean condition = !status.hasSavepoint();
|
|
||||||
assertThat(condition).as("Is regular transaction").isTrue();
|
|
||||||
status.setRollbackOnly();
|
status.setRollbackOnly();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
assertThat(status.isNewTransaction()).as("Is new transaction").isTrue();
|
||||||
boolean condition = !status.hasSavepoint();
|
assertThat(status.hasSavepoint()).as("Isn't nested transaction").isFalse();
|
||||||
assertThat(condition).as("Isn't nested transaction").isTrue();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback(sp);
|
verify(con).rollback(sp);
|
||||||
verify(con).releaseSavepoint(sp);
|
verify(con).releaseSavepoint(sp);
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
|
|
@ -1564,10 +1446,9 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
.isFalse();
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1579,8 +1460,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).releaseSavepoint(sp);
|
verify(con).releaseSavepoint(sp);
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
|
|
@ -1598,10 +1478,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1613,8 +1491,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback(sp);
|
verify(con).rollback(sp);
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
|
|
@ -1624,10 +1501,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testTransactionWithPropagationNested() throws Exception {
|
public void testTransactionWithPropagationNested() throws Exception {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1636,8 +1511,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).commit();
|
verify(con).commit();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
@ -1646,10 +1520,8 @@ public class DataSourceTransactionManagerTests {
|
||||||
public void testTransactionWithPropagationNestedAndRollback() throws Exception {
|
public void testTransactionWithPropagationNestedAndRollback() throws Exception {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
boolean condition2 = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition2).as("Hasn't thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
boolean condition1 = !TransactionSynchronizationManager.isSynchronizationActive();
|
|
||||||
assertThat(condition1).as("Synchronization not active").isTrue();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1659,8 +1531,7 @@ public class DataSourceTransactionManagerTests {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
boolean condition = !TransactionSynchronizationManager.hasResource(ds);
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(condition).as("Hasn't thread connection").isTrue();
|
|
||||||
verify(con).rollback();
|
verify(con).rollback();
|
||||||
verify(con).close();
|
verify(con).close();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -143,8 +143,7 @@ public class JdbcTransactionManagerTests {
|
||||||
tm = new JdbcTransactionManager(dsToUse);
|
tm = new JdbcTransactionManager(dsToUse);
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -171,8 +170,7 @@ public class JdbcTransactionManagerTests {
|
||||||
});
|
});
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
if (autoCommit && (!lazyConnection || createStatement)) {
|
if (autoCommit && (!lazyConnection || createStatement)) {
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
|
|
@ -234,8 +232,7 @@ public class JdbcTransactionManagerTests {
|
||||||
tm = new JdbcTransactionManager(dsToUse);
|
tm = new JdbcTransactionManager(dsToUse);
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(dsToUse)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
final RuntimeException ex = new RuntimeException("Application exception");
|
final RuntimeException ex = new RuntimeException("Application exception");
|
||||||
assertThatRuntimeException().isThrownBy(() ->
|
assertThatRuntimeException().isThrownBy(() ->
|
||||||
|
|
@ -260,8 +257,7 @@ public class JdbcTransactionManagerTests {
|
||||||
.isEqualTo(ex);
|
.isEqualTo(ex);
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
if (autoCommit && (!lazyConnection || createStatement)) {
|
if (autoCommit && (!lazyConnection || createStatement)) {
|
||||||
InOrder ordered = inOrder(con);
|
InOrder ordered = inOrder(con);
|
||||||
|
|
@ -282,8 +278,7 @@ public class JdbcTransactionManagerTests {
|
||||||
tm.setTransactionSynchronization(JdbcTransactionManager.SYNCHRONIZATION_NEVER);
|
tm.setTransactionSynchronization(JdbcTransactionManager.SYNCHRONIZATION_NEVER);
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
ConnectionHolder conHolder = new ConnectionHolder(con, true);
|
ConnectionHolder conHolder = new ConnectionHolder(con, true);
|
||||||
TransactionSynchronizationManager.bindResource(ds, conHolder);
|
TransactionSynchronizationManager.bindResource(ds, conHolder);
|
||||||
|
|
@ -293,8 +288,7 @@ public class JdbcTransactionManagerTests {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Has thread connection").isTrue();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
assertThat(status.isNewTransaction()).as("Is existing transaction").isFalse();
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
|
|
@ -303,8 +297,7 @@ public class JdbcTransactionManagerTests {
|
||||||
}
|
}
|
||||||
catch (RuntimeException ex2) {
|
catch (RuntimeException ex2) {
|
||||||
// expected
|
// expected
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
assertThat(ex2).as("Correct exception thrown").isEqualTo(ex);
|
assertThat(ex2).as("Correct exception thrown").isEqualTo(ex);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
|
|
@ -330,8 +323,7 @@ public class JdbcTransactionManagerTests {
|
||||||
tm.setFailEarlyOnGlobalRollbackOnly(true);
|
tm.setFailEarlyOnGlobalRollbackOnly(true);
|
||||||
}
|
}
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
||||||
TestTransactionSynchronization synch =
|
TestTransactionSynchronization synch =
|
||||||
|
|
@ -394,8 +386,7 @@ public class JdbcTransactionManagerTests {
|
||||||
tm.setValidateExistingTransaction(true);
|
tm.setValidateExistingTransaction(true);
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
|
|
@ -428,8 +419,7 @@ public class JdbcTransactionManagerTests {
|
||||||
tm.setValidateExistingTransaction(true);
|
tm.setValidateExistingTransaction(true);
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() -> {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
|
|
@ -460,8 +450,7 @@ public class JdbcTransactionManagerTests {
|
||||||
@Test
|
@Test
|
||||||
public void testParticipatingTransactionWithTransactionStartedFromSynch() throws Exception {
|
public void testParticipatingTransactionWithTransactionStartedFromSynch() throws Exception {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
|
|
@ -504,8 +493,7 @@ public class JdbcTransactionManagerTests {
|
||||||
given(ds2.getConnection()).willReturn(con2);
|
given(ds2.getConnection()).willReturn(con2);
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
|
|
||||||
|
|
@ -544,8 +532,7 @@ public class JdbcTransactionManagerTests {
|
||||||
// tm has no synch enabled (used at outer level), tm2 has synch enabled (inner level)
|
// tm has no synch enabled (used at outer level), tm2 has synch enabled (inner level)
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
|
||||||
final TestTransactionSynchronization synch =
|
final TestTransactionSynchronization synch =
|
||||||
|
|
@ -591,8 +578,7 @@ public class JdbcTransactionManagerTests {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -639,8 +625,7 @@ public class JdbcTransactionManagerTests {
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -690,8 +675,7 @@ public class JdbcTransactionManagerTests {
|
||||||
|
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds2)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(CannotCreateTransactionException.class).isThrownBy(() ->
|
assertThatExceptionOfType(CannotCreateTransactionException.class).isThrownBy(() ->
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
|
|
@ -721,8 +705,7 @@ public class JdbcTransactionManagerTests {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -734,8 +717,7 @@ public class JdbcTransactionManagerTests {
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
protected void doInTransactionWithoutResult(TransactionStatus status) throws RuntimeException {
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection")
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
.isFalse();
|
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization active").isTrue();
|
||||||
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
assertThat(status.isNewTransaction()).as("Isn't new transaction").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
||||||
|
|
@ -759,8 +741,7 @@ public class JdbcTransactionManagerTests {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() ->
|
assertThatExceptionOfType(IllegalTransactionStateException.class).isThrownBy(() ->
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
|
|
@ -788,8 +769,7 @@ public class JdbcTransactionManagerTests {
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -825,8 +805,7 @@ public class JdbcTransactionManagerTests {
|
||||||
TransactionTemplate tt = new TransactionTemplate(tm);
|
TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_SUPPORTS);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1586,8 +1565,7 @@ public class JdbcTransactionManagerTests {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1610,8 +1588,7 @@ public class JdbcTransactionManagerTests {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -1630,8 +1607,7 @@ public class JdbcTransactionManagerTests {
|
||||||
final TransactionTemplate tt = new TransactionTemplate(tm);
|
final TransactionTemplate tt = new TransactionTemplate(tm);
|
||||||
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED);
|
||||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
assertThat(TransactionSynchronizationManager.hasResource(ds)).as("Hasn't thread connection").isFalse();
|
||||||
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active")
|
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).as("Synchronization not active").isFalse();
|
||||||
.isFalse();
|
|
||||||
|
|
||||||
tt.execute(new TransactionCallbackWithoutResult() {
|
tt.execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue