Example usage for org.springframework.transaction.support TransactionSynchronizationManager clearSynchronization

List of usage examples for org.springframework.transaction.support TransactionSynchronizationManager clearSynchronization

Introduction

In this page you can find the example usage for org.springframework.transaction.support TransactionSynchronizationManager clearSynchronization.

Prototype

public static void clearSynchronization() throws IllegalStateException 

Source Link

Document

Deactivate transaction synchronization for the current thread.

Usage

From source file:org.springframework.ldap.transaction.compensating.manager.hibernate.ContextSourceAndHibernateTransactionManagerIntegrationTest.java

@Before
public void prepareTest() throws Exception {
    if (TransactionSynchronizationManager.isSynchronizationActive()) {
        TransactionSynchronizationManager.clearSynchronization();
    }/* ww w . java 2  s.com*/

    OrgPerson person = new OrgPerson();
    person.setId(new Integer(1));
    person.setLastname("Person");
    person.setFullname("Some Person");
    person.setDescription("Sweden, Company1, Some Person");
    person.setCountry("Sweden");
    person.setCompany("Company1");
    // "Some Person", "Person", "Sweden, Company1, Some Person"
    // avoid the transaction manager we have configured, do it manually
    Session session = this.sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    session.saveOrUpdate(person);
    tx.commit();
    session.close();

}

From source file:org.springframework.transaction.support.AbstractPlatformTransactionManager.java

/**
 * Suspend all current synchronizations and deactivate transaction
 * synchronization for the current thread.
 * @return the List of suspended TransactionSynchronization objects
 *//*ww w.j  a  va2 s  .c o  m*/
private List<TransactionSynchronization> doSuspendSynchronization() {
    List<TransactionSynchronization> suspendedSynchronizations = TransactionSynchronizationManager
            .getSynchronizations();
    for (TransactionSynchronization synchronization : suspendedSynchronizations) {
        synchronization.suspend();
    }
    TransactionSynchronizationManager.clearSynchronization();
    return suspendedSynchronizations;
}

From source file:org.springframework.transaction.support.AbstractPlatformTransactionManager.java

/**
 * Trigger {@code afterCompletion} callbacks.
 * @param status object representing the transaction
 * @param completionStatus completion status according to TransactionSynchronization constants
 *///from www  .java  2  s. c om
private void triggerAfterCompletion(DefaultTransactionStatus status, int completionStatus) {
    if (status.isNewSynchronization()) {
        List<TransactionSynchronization> synchronizations = TransactionSynchronizationManager
                .getSynchronizations();
        TransactionSynchronizationManager.clearSynchronization();
        if (!status.hasTransaction() || status.isNewTransaction()) {
            if (status.isDebug()) {
                logger.trace("Triggering afterCompletion synchronization");
            }
            // No transaction or new transaction for the current scope ->
            // invoke the afterCompletion callbacks immediately
            invokeAfterCompletion(synchronizations, completionStatus);
        } else if (!synchronizations.isEmpty()) {
            // Existing transaction that we participate in, controlled outside
            // of the scope of this Spring transaction manager -> try to register
            // an afterCompletion callback with the existing (JTA) transaction.
            registerAfterCompletionWithExistingTransaction(status.getTransaction(), synchronizations);
        }
    }
}