Anton Vinogradov created IGNITE-28922:
-----------------------------------------
Summary: Revise the wire-companion field pairs of
CacheContinuousQueryEntry
Key: IGNITE-28922
URL: https://issues.apache.org/jira/browse/IGNITE-28922
Project: Ignite
Issue Type: Task
Reporter: Anton Vinogradov
CacheContinuousQueryEntry keeps its payload in pairs of fields: the local
key/newVal/oldVal that consumers read, and the @Order companions written to the
wire. The marshal hook copies local -> companion only for a non-filtered entry
(a filtered one must not carry the payload), and the unmarshal hook moves the
companions back and nulls them.
The shape predates this PR: master has the same pairs with byte[] companions
filled in prepareMarshal under the same !isFiltered() guard; this PR only
changes the companion type from a marshaller blob to the typed
KeyCacheObject/CacheObject written by the generated serializer.
The pairs exist because the generated serializer writes @Order fields
unconditionally — there is no per-field conditional/converter facility in the
codegen. Proposal: either add such a facility (a way to declare "write this
field only when a condition holds"), or split the entry into two message shapes
(filtered / full) so that no field pairs are needed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)