[ 
https://issues.apache.org/jira/browse/IGNITE-28901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anton Vinogradov updated IGNITE-28901:
--------------------------------------
    Epic Link: IGNITE-25881

> 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
>            Priority: Major
>             Fix For: 2.19
>
>
> 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