newTransactionStatus reverted to its original role, just without preparing synchronization (SPR-6521)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2591 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
parent
67d2f24b59
commit
3a683ea0ac
|
|
@ -330,7 +330,7 @@ public class WebSphereUowTransactionManager extends JtaTransactionManager
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
DefaultTransactionStatus status = newTransactionStatus(
|
DefaultTransactionStatus status = prepareTransactionStatus(
|
||||||
this.definition, (this.actualTransaction ? this : null),
|
this.definition, (this.actualTransaction ? this : null),
|
||||||
this.newTransaction, this.newSynchronization, this.debug, null);
|
this.newTransaction, this.newSynchronization, this.debug, null);
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -366,7 +366,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
||||||
DefaultTransactionStatus status = instantiateTransactionStatus(
|
DefaultTransactionStatus status = newTransactionStatus(
|
||||||
definition, transaction, true, newSynchronization, debugEnabled, suspendedResources);
|
definition, transaction, true, newSynchronization, debugEnabled, suspendedResources);
|
||||||
doBegin(transaction, definition);
|
doBegin(transaction, definition);
|
||||||
prepareSynchronization(status, definition);
|
prepareSynchronization(status, definition);
|
||||||
|
|
@ -384,7 +384,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
else {
|
else {
|
||||||
// Create "empty" transaction: no actual transaction, but potentially synchronization.
|
// Create "empty" transaction: no actual transaction, but potentially synchronization.
|
||||||
boolean newSynchronization = (getTransactionSynchronization() == SYNCHRONIZATION_ALWAYS);
|
boolean newSynchronization = (getTransactionSynchronization() == SYNCHRONIZATION_ALWAYS);
|
||||||
return newTransactionStatus(definition, null, true, newSynchronization, debugEnabled, null);
|
return prepareTransactionStatus(definition, null, true, newSynchronization, debugEnabled, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -406,7 +406,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
}
|
}
|
||||||
Object suspendedResources = suspend(transaction);
|
Object suspendedResources = suspend(transaction);
|
||||||
boolean newSynchronization = (getTransactionSynchronization() == SYNCHRONIZATION_ALWAYS);
|
boolean newSynchronization = (getTransactionSynchronization() == SYNCHRONIZATION_ALWAYS);
|
||||||
return newTransactionStatus(
|
return prepareTransactionStatus(
|
||||||
definition, null, false, newSynchronization, debugEnabled, suspendedResources);
|
definition, null, false, newSynchronization, debugEnabled, suspendedResources);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -418,7 +418,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
SuspendedResourcesHolder suspendedResources = suspend(transaction);
|
SuspendedResourcesHolder suspendedResources = suspend(transaction);
|
||||||
try {
|
try {
|
||||||
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
||||||
DefaultTransactionStatus status = instantiateTransactionStatus(
|
DefaultTransactionStatus status = newTransactionStatus(
|
||||||
definition, transaction, true, newSynchronization, debugEnabled, suspendedResources);
|
definition, transaction, true, newSynchronization, debugEnabled, suspendedResources);
|
||||||
doBegin(transaction, definition);
|
doBegin(transaction, definition);
|
||||||
prepareSynchronization(status, definition);
|
prepareSynchronization(status, definition);
|
||||||
|
|
@ -448,7 +448,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
// through the SavepointManager API implemented by TransactionStatus.
|
// through the SavepointManager API implemented by TransactionStatus.
|
||||||
// Usually uses JDBC 3.0 savepoints. Never activates Spring synchronization.
|
// Usually uses JDBC 3.0 savepoints. Never activates Spring synchronization.
|
||||||
DefaultTransactionStatus status =
|
DefaultTransactionStatus status =
|
||||||
newTransactionStatus(definition, transaction, false, false, debugEnabled, null);
|
prepareTransactionStatus(definition, transaction, false, false, debugEnabled, null);
|
||||||
status.createAndHoldSavepoint();
|
status.createAndHoldSavepoint();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
@ -457,7 +457,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
// Usually only for JTA: Spring synchronization might get activated here
|
// Usually only for JTA: Spring synchronization might get activated here
|
||||||
// in case of a pre-existing JTA transaction.
|
// in case of a pre-existing JTA transaction.
|
||||||
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
||||||
DefaultTransactionStatus status = instantiateTransactionStatus(
|
DefaultTransactionStatus status = newTransactionStatus(
|
||||||
definition, transaction, true, newSynchronization, debugEnabled, null);
|
definition, transaction, true, newSynchronization, debugEnabled, null);
|
||||||
doBegin(transaction, definition);
|
doBegin(transaction, definition);
|
||||||
prepareSynchronization(status, definition);
|
prepareSynchronization(status, definition);
|
||||||
|
|
@ -489,18 +489,20 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
boolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);
|
||||||
return newTransactionStatus(definition, transaction, false, newSynchronization, debugEnabled, null);
|
return prepareTransactionStatus(definition, transaction, false, newSynchronization, debugEnabled, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new TransactionStatus for the given arguments,
|
* Create a new TransactionStatus for the given arguments,
|
||||||
* also initializing transaction synchronization as appropriate.
|
* also initializing transaction synchronization as appropriate.
|
||||||
|
* @see #newTransactionStatus
|
||||||
|
* @see #prepareTransactionStatus
|
||||||
*/
|
*/
|
||||||
protected DefaultTransactionStatus newTransactionStatus(
|
protected final DefaultTransactionStatus prepareTransactionStatus(
|
||||||
TransactionDefinition definition, Object transaction, boolean newTransaction,
|
TransactionDefinition definition, Object transaction, boolean newTransaction,
|
||||||
boolean newSynchronization, boolean debug, Object suspendedResources) {
|
boolean newSynchronization, boolean debug, Object suspendedResources) {
|
||||||
|
|
||||||
DefaultTransactionStatus status = instantiateTransactionStatus(
|
DefaultTransactionStatus status = newTransactionStatus(
|
||||||
definition, transaction, newTransaction, newSynchronization, debug, suspendedResources);
|
definition, transaction, newTransaction, newSynchronization, debug, suspendedResources);
|
||||||
prepareSynchronization(status, definition);
|
prepareSynchronization(status, definition);
|
||||||
return status;
|
return status;
|
||||||
|
|
@ -509,7 +511,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
/**
|
/**
|
||||||
* Create a rae TransactionStatus instance for the given arguments.
|
* Create a rae TransactionStatus instance for the given arguments.
|
||||||
*/
|
*/
|
||||||
private DefaultTransactionStatus instantiateTransactionStatus(
|
protected DefaultTransactionStatus newTransactionStatus(
|
||||||
TransactionDefinition definition, Object transaction, boolean newTransaction,
|
TransactionDefinition definition, Object transaction, boolean newTransaction,
|
||||||
boolean newSynchronization, boolean debug, Object suspendedResources) {
|
boolean newSynchronization, boolean debug, Object suspendedResources) {
|
||||||
|
|
||||||
|
|
@ -523,7 +525,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
/**
|
/**
|
||||||
* Initialize transaction synchronization as appropriate.
|
* Initialize transaction synchronization as appropriate.
|
||||||
*/
|
*/
|
||||||
private void prepareSynchronization(DefaultTransactionStatus status, TransactionDefinition definition) {
|
protected void prepareSynchronization(DefaultTransactionStatus status, TransactionDefinition definition) {
|
||||||
if (status.isNewSynchronization()) {
|
if (status.isNewSynchronization()) {
|
||||||
TransactionSynchronizationManager.setActualTransactionActive(status.hasTransaction());
|
TransactionSynchronizationManager.setActualTransactionActive(status.hasTransaction());
|
||||||
TransactionSynchronizationManager.setCurrentTransactionIsolationLevel(
|
TransactionSynchronizationManager.setCurrentTransactionIsolationLevel(
|
||||||
|
|
@ -1269,7 +1271,6 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran
|
||||||
this.logger = LogFactory.getLog(getClass());
|
this.logger = LogFactory.getLog(getClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holder for suspended resources.
|
* Holder for suspended resources.
|
||||||
* Used internally by <code>suspend</code> and <code>resume</code>.
|
* Used internally by <code>suspend</code> and <code>resume</code>.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue