void close() throws PersistitException {
        if (_nestedDepth > 0 && !_commitCompleted && !_rollbackCompleted) {
            final TransactionStatus ts = _transactionStatus;
            if (ts != null && ts.getTs() == _startTimestamp && !_commitCompleted && !_rollbackCompleted) {
                rollback();
                _persistit.getLogBase().txnAbandoned.log(this);
            }
        }
        /*
         * The background rollback cleanup should be stopped before calling this
         * method so the following check is deterministic.
         */
        TransactionStatus status = _persistit.getTransactionIndex().getStatus(_startTimestamp);
        if (status != null && status.getMvvCount() > 0) {
            flushTransactionBuffer(false);
        }
    }