@Override
  public synchronized void beforeCompletion() throws SynchronizationCommitConflictException {
    proxy.getTxMgr().setTXState(null);
    if (closed) {
      throw new TXManagerCancelledException();
    }

    if (beforeCompletionCalled) {
      // do not re-execute beforeCompletion again
      return;
    }
    beforeCompletionCalled = true;
    singleThreadJTAExecutor.executeBeforeCompletion(this,
        getExecutor(), getCancelCriterion());
  }
Used to keep track of the region and key associated with a TXEntryState. Also used to sort the
entries into the order in which they will be applied.

@since GemFire 5.7
geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java