@Override
  public SerializedCacheValue<?> getSerializedNewValue() {
    // In the case where there is a delta that has not been applied yet,
    // do not apply it here since it would not produce a serialized new
    // value (return null instead to indicate the new value is not
    // in serialized form).
    @Unretained(ENTRY_EVENT_NEW_VALUE)
    final Object tmp = basicGetNewValue();
    if (tmp instanceof CachedDeserializable) {
      CachedDeserializable cd = (CachedDeserializable) tmp;
      if (!cd.isSerialized()) {
        return null;
      }
      byte[] bytes = newValueBytes;
      if (bytes == null) {
        bytes = cachedSerializedNewValue;
      }
      return new SerializedCacheValueImpl(this, getRegion(), re, cd, bytes);
    } else {
      // Note we return null even if cachedSerializedNewValue is not null.
      // This is because some callers of this method use it to indicate
      // that a CacheDeserializable should be created during deserialization.
      return null;
    }
  }
@return null if new value is not serialized; otherwise returns a SerializedCacheValueImpl
        containing the new value.
geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java