persistenceManager.acquireExclusiveLock();
try {
if (txType == CMT || txType == BMT_UT) {
// Error - should not be called
throw new JDOUserException(I18NHelper.getMessage(messages,
"transaction.transactionimpl.mgd", "rollback")); //NOI18N
}
this.setTrace();
if (this.tracing)
this.traceCall("rollback"); // NOI18N
if ((this.status != Status.STATUS_ACTIVE)
&& (this.status != Status.STATUS_MARKED_ROLLBACK)) {
//
// Once commit processing has started (PREPARING, COMMITTING
// or COMITTED) the only way to rollback a transaction is
// via the registered resource interface throwing an
// XAException, which will use a lower-level rollback.
//
throw new JDOUserException(I18NHelper.getMessage(messages,
"transaction.transactionimpl.commit_rollback.notactive", // NOI18N
"rollback", // NOI18N
this.statusString(this.status)));
}