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.