public void addTransactionListener(TransactionState transactionState, final TransactionListener transactionListener) {
Transaction transaction = getTransaction();
CommandContext commandContext = Context.getCommandContext();
try {
transaction.registerSynchronization(new TransactionStateSynchronization(transactionState, transactionListener, commandContext));
} catch (IllegalStateException e) {
throw new ProcessEngineException("IllegalStateException while registering synchronization ", e);
} catch (RollbackException e) {
throw new ProcessEngineException("RollbackException while registering synchronization ", e);
} catch (SystemException e) {