Hi Andry!

Continuous query for performance reasons tries to avoid deserialization of
binary values and reads cached data. Each time when you invoke
CacheEntryEvent.getOldValue() you read just the same instance that was last
deserialized, and it's actually returned by get() operation. 

So why it works with disabled peer class loading or indexed values? The
reason is in following flag:
boolean storeVal = ctx.config().isPeerClassLoadingEnabled() ||
            GridQueryProcessor.isEnabled(ccfg) ||
            !ccfg.isCopyOnRead();

That flag says to cache deserialized value or not.
So if you rely on old value try not to modify retrieved value from get().

This looks not convenient and probably should be fixed in upcoming versions.



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/Problem-with-Continuous-query-for-listening-updates-tp8709p9024.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to