TransactionManager transactionManager = getTransactionManager();
try {
final Session session = factory.openSession();
transactionManager.begin();
delegate.run( session, tuple );
transactionManager.commit();
session.close();
}
catch ( Throwable e ) {
errorHandler.handleException( log.massIndexerUnexpectedErrorMessage(), e );
rollback( transactionManager, e );