List of usage examples for org.springframework.transaction.support TransactionSynchronizationManager clearSynchronization
public static void clearSynchronization() throws IllegalStateException
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); } } }