public R run ( A ... arg ) throws E { final TransactionManager tm = getTransactionManager ( ) ; Transaction tx = null ; try { if ( tm != null ) { try { tx = tm . suspend ( ) ; } catch ( SystemException e ) { LOG . warn ( "Cannot suspend the current transaction" , e ) ; } } return execute ( arg ) ; } finally { if ( tx != null ) { try { tm . resume ( tx ) ; } catch ( Exception e ) { LOG . warn ( "Cannot resume the current transaction" , e ) ; } } } }
Executes the action outside the context of the current tx