public Transaction suspend() throws SystemException { assertTmOk("tx suspend"); // check for ACTIVE/MARKED_ROLLBACK? TransactionImpl tx = txThreadMap.remove(Thread.currentThread()); if (tx != null) { // generate pro-active event suspend tx.markAsSuspended(); } return tx; }