Folks,
It looks like we cache the deserialized value in case indexing is enabled
and a read operation happens on server side (e.g. affinity closure does
get() on primary node).
This must be caused by this piece of code in IgniteCacheObjectProcessorImpl:
boolean storeVal = ctx.config().isPeerClassLoadingEnabled() ||
GridQueryProcessor.isEnabled(ccfg) ||
!ccfg.isCopyOnRead();
This actually means that we store deserialized values in case indexing is
configured even if copyOnRead is true. My understanding is that this is a
bug and GridQueryProcessor.isEnabled(ccfg) condition should be removed from
there (at least for the case when binary marshaller is used).
Am I missing something?
-Val