ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Valentin Kulichenko <valentin.kuliche...@gmail.com>
Subject Re: Deserialization error with Ignite 2.3.0
Date Wed, 08 Nov 2017 00:02:38 GMT
*cross-posting to dev*

Hi Chris,

This is a regression due to this fix:
https://issues.apache.org/jira/browse/IGNITE-6485. For some reason, since
2.3 it is looking for readResolve/writeReplace methods only in exact class
that is being serialized, but not in the whole hierarchy.

*Andrey G*, since you did this change, can you please clarify it? Why isn't
it looking into parent classes anymore? Generally, readResolve/writeReplace
can reside in parent classes, so previous behavior seems to be the correct
one. Can you create a ticket to fix it back?

-Val

On Mon, Nov 6, 2017 at 7:59 PM, Chris Berry <chriswberry@gmail.com> wrote:

> Hi Val
>
> I have found that if I switch from
>
>     igniteConfig.setMarshaller(new BinaryMarshaller());
>
> To:
>
>     igniteConfig.setMarshaller(new
> OptimizedMarshaller().setRequireSerializable(false));
>
> Then everything works again.
>
> Although I am worried that this will have a terrible effect on performance
> (I switched to the BinaryMarshaller to get a good performance bump at the
> release of 2.0.0)
>
> I believe that all of this is because the concrete forms of the
> ImmutableList (e.g. RegularImmutableList)
> all use:
>
>   final transient Object[] array;
>
> to keep their data.
> And that the handling of transients changed for the BinaryMarshaller in
> 2.3.0
>
> Thanks for your help!!
> Cheers,
> -- Chris
>
>
>
>
> Thanks,
> -- Chris
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Mime
View raw message