@Override
  public String toString() {
    StringBuilder buf = new StringBuilder();
    buf.append(getShortClassName());
    buf.append("[");
    buf.append("eventID=");
    buf.append(eventID);
    if (getRegion() != null) {
      buf.append(";r=").append(getRegion().getName());
    }
    buf.append(";op=");
    buf.append(getOperation());
    buf.append(";key=");
    buf.append(getKey());
    buf.append(";bucket=");
    buf.append(getKeyInfo().getBucketId());
    buf.append(";oldValue=");
    if (putAllOp != null) {
      buf.append(";putAllDataSize :" + putAllOp.putAllDataSize);
    }
    if (removeAllOp != null) {
      buf.append(";removeAllDataSize :" + removeAllOp.removeAllDataSize);
    }
    buf.append("]");
    return buf.toString();
  }
TODO DISTTX: callers of this constructor need to make sure that release is called. In general
the distributed tx code needs to be reviewed to see if it correctly handles off-heap.
geode-core/src/main/java/org/apache/geode/internal/cache/tx/DistTxEntryEvent.java