*/
synchronized void ensureActive() throws CannotJoinException {
if (state != ACTIVE || stateChangeWaiting) {
final String msg = "transaction mgr:" + tr + ", id:" + trId +
" not active, in state " + TxnConstants.getName(state);
final CannotJoinException e = new CannotJoinException(msg);
logger.log(Levels.FAILED, msg, e);
throw e;
}
assert stateReaders >= 0;
stateReaders++;