/** * Actually invoke the {@code afterCommit} methods of the * given Spring TransactionSynchronization objects. * @param synchronizations a List of TransactionSynchronization objects * @see TransactionSynchronization#afterCommit() */ public static void invokeAfterCommit(@Nullable List<TransactionSynchronization> synchronizations) { if (synchronizations != null) { for (TransactionSynchronization synchronization : synchronizations) { synchronization.afterCommit(); } } }
/** * Actually invoke the {@code afterCommit} methods of the * given Spring TransactionSynchronization objects. * @param synchronizations a List of TransactionSynchronization objects * @see TransactionSynchronization#afterCommit() */ public static void invokeAfterCommit(@Nullable List<TransactionSynchronization> synchronizations) { if (synchronizations != null) { for (TransactionSynchronization synchronization : synchronizations) { synchronization.afterCommit(); } } }
public synchronized void executeAfterCommit() { for (TransactionSynchronization synchronization : synchronizations) { synchronization.afterCommit(); } }
synch.beforeCommit(false); synch.beforeCompletion(); synch.afterCommit(); synch.afterCompletion(TransactionSynchronization.STATUS_UNKNOWN);
@Test public void jtaTransactionManagerWithCommitAndSynchronizationOnActual() throws Exception { UserTransaction ut = mock(UserTransaction.class); given(ut.getStatus()).willReturn(Status.STATUS_NO_TRANSACTION, Status.STATUS_ACTIVE, Status.STATUS_ACTIVE); final TransactionSynchronization synch = mock(TransactionSynchronization.class); JtaTransactionManager ptm = newJtaTransactionManager(ut); TransactionTemplate tt = new TransactionTemplate(ptm); ptm.setTransactionSynchronization(JtaTransactionManager.SYNCHRONIZATION_ON_ACTUAL_TRANSACTION); assertFalse(TransactionSynchronizationManager.isSynchronizationActive()); tt.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { // something transactional assertTrue(TransactionSynchronizationManager.isSynchronizationActive()); TransactionSynchronizationManager.registerSynchronization(synch); } }); assertFalse(TransactionSynchronizationManager.isSynchronizationActive()); verify(ut).begin(); verify(ut).commit(); verify(synch).beforeCommit(false); verify(synch).beforeCompletion(); verify(synch).afterCommit(); verify(synch).afterCompletion(TransactionSynchronization.STATUS_COMMITTED); }
verify(synch).beforeCommit(false); verify(synch).beforeCompletion(); verify(synch).afterCommit(); verify(synch).afterCompletion(TransactionSynchronization.STATUS_COMMITTED);
@Override public void afterCommit() { this.synchronization.afterCommit(); }
@Override public void afterCommit() { this.synchronization.afterCommit(); }
/** * Actually invoke the {@code afterCommit} methods of the * given Spring TransactionSynchronization objects. * @param synchronizations List of TransactionSynchronization objects * @see TransactionSynchronization#afterCommit() */ public static void invokeAfterCommit(@Nullable List<TransactionSynchronization> synchronizations) { if (synchronizations != null) { for (TransactionSynchronization synchronization : synchronizations) { synchronization.afterCommit(); } } }
/** * Actually invoke the {@code afterCommit} methods of the * given Spring TransactionSynchronization objects. * @param synchronizations a List of TransactionSynchronization objects * @see TransactionSynchronization#afterCommit() */ public static void invokeAfterCommit(@Nullable List<TransactionSynchronization> synchronizations) { if (synchronizations != null) { for (TransactionSynchronization synchronization : synchronizations) { synchronization.afterCommit(); } } }