protected void appendFields(StringBuilder buff) {
      buff.append("; sender=");
      buff.append(getSender());
      buff.append("; callbackArg=");
      buff.append(callbackArg);
      buff.append("; processorId=");
      buff.append(processorId);
      buff.append("; op=");
      buff.append(op);
      buff.append("; applied=");
      buff.append(appliedOperation);
      buff.append("; directAck=");
      buff.append(directAck);
      buff.append("; posdup=");
      buff.append(possibleDuplicate);
      buff.append("; hasDelta=");
      buff.append(hasDelta);
      buff.append("; hasOldValue=");
      buff.append(hasOldValue);
      if (versionTag != null) {
        buff.append("; version=");
        buff.append(versionTag);
      }
      if (filterRouting != null) {
        buff.append(" ");
        buff.append(filterRouting);
      }
    }
When an event is discarded because of an attempt to overwrite a more recent change we still
need to deliver that event to clients. Clients can then perform their own concurrency checks
on the event.
geode-core/src/main/java/org/apache/geode/internal/cache/DistributedCacheOperation.java