Anton Vinogradov created IGNITE-28901:
-----------------------------------------

             Summary: Revise GridEventStorageMessage filters (un)marshalling
                 Key: IGNITE-28901
                 URL: https://issues.apache.org/jira/browse/IGNITE-28901
             Project: Ignite
          Issue Type: Task
            Reporter: Anton Vinogradov


GridEventStorageMessage carries the remote event filter as a manual byte[] blob 
(filterBytes/filter) with a hand-written deferred unmarshal step: 
finishUnmarshalFilters(marsh, filterClsLdr) is invoked by 
GridEventStorageManager at processing time, once the peer-deployment class 
loader for the filter is resolved.

This is the only (un)marshalling in core left outside the generated-marshaller 
flow (IGNITE-28520): the generated unmarshal runs at receive time with the 
configuration/peer loader available then, while the filter must be deserialized 
later with a loader resolved per-filter from deployment info, so @Marshalled 
cannot express it.

Options to explore:
* a deferred flavour of @Marshalled: the companion stays serialized at receive; 
a generated unmarshalDeferred(ClassLoader) restores it on demand;
* or keep the manual step but align its naming/shape with the marshal/unmarshal 
hook family and document why it is manual.

Follow-up of IGNITE-28520.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to