[
https://issues.apache.org/jira/browse/IGNITE-28922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anton Vinogradov updated IGNITE-28922:
--------------------------------------
Epic Link: IGNITE-25881
> 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
> Priority: Major
> Fix For: 2.19
>
>
> 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)