Darrel Schneider created GEODE-1290:
---------------------------------------

             Summary: AbstractRegionEntry.prepareValueForCache should call 
event.setCachedSerializedNewValue
                 Key: GEODE-1290
                 URL: https://issues.apache.org/jira/browse/GEODE-1290
             Project: Geode
          Issue Type: Bug
          Components: offheap
            Reporter: Darrel Schneider


AbstractRegionEntry.prepareValueForCache has an off-heap part of the code that 
copies the heap value to a byte array for storing it in off-heap memory.
When it does this it should call EntryEventImpl.setCachedSerializedNewValue in 
case this operation needs to serialized value again.
The place to do this call is marked in the following code with TODO OFFHEAP:
        byte[] data;
        boolean isSerialized = !(val instanceof byte[]);
        if (isSerialized) {
          if (event != null && event.getCachedSerializedNewValue() != null) {
            data = event.getCachedSerializedNewValue();
          } else if (val instanceof CachedDeserializable) {
            data = ((CachedDeserializable)val).getSerializedValue();
            // TODO OFFHEAP: cache data in event?
          } else if (val instanceof PdxInstance) {
            try {
              data = ((ConvertableToBytes)val).toBytes();
              // TODO OFFHEAP: cache data in event?
            } catch (IOException e) {
              throw new PdxSerializationException("Could not convert " + val + 
" to bytes", e);
            }
          } else {
            data = EntryEventImpl.serialize(val);
            // TODO OFFHEAP: cache data in event?
          }
  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to