[
https://issues.apache.org/jira/browse/IGNITE-28922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18102115#comment-18102115
]
Anton Vinogradov commented on IGNITE-28922:
-------------------------------------------
Done by IGNITE-28356 (commit 4927eec73bf). It removed the
keyWire/newValWire/oldValWire pairs together with the hand-written
marshal/unmarshal; the class is no longer a MarshallableMessage, and key,
newVal and oldVal are plain fields with @Order. The TODO that pointed here is
gone as well.
The invariant is now structural rather than marshalling-based: a filtered entry
carries no payload because CacheContinuousQueryEventBuffer.processEntry calls
copyWithDataReset(), and that is the only way into the buffer.
Closing as a duplicate.
> 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
> Labels: IEP-132, wire-format
> 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)