Alex,

I don't like this. I think both marshallers should behave in the same way
and this behavior should be consistent with Java serialization spec. I
hardly believe that classes like in Paulo's example will be used for
communication with .NET/C++. And I would prefer to have such restrictions
for interop, rather than for Java-only scenario.

-Val

On Mon, Dec 7, 2015 at 9:51 AM, Alexey Goncharuk <[email protected]
> wrote:

> Paulo,
>
> After a closer look I see that BinaryMarshaller works the way it was
> designed to work. The issue is that your class implements Map and
> Serializable, but does not define writeObject(), that's why Ignite
> serializes it in the portable format discarding information about the
> custom user type (this way it can be read in other platforms - .NET and C++)
>
> There are two ways to solve this. First is to set OptimizedMarshaller in
> configuration (this marshaller was the default marshaller in ignite-1.4).
> The second one would be to define writeObject() method in your class which
> will call defaultWriteObject, like this:
>
>     private void writeObject(ObjectOutputStream s)
>         throws IOException {
>         s.defaultWriteObject();
>     }
>
> I am also curious what other community members think about current
> behavior.
>
> 2015-12-07 20:38 GMT+03:00 Paulo Pires <[email protected]>:
>
>> With 3fbf3e9 the issue is still there.
>>
>> On Mon, Dec 7, 2015 at 11:28 AM, Andrey Gura <[email protected]> wrote:
>>
>>> Paulo,
>>>
>>> I see commit with fix in master branch.
>>>
>>> commit 2564a556e353269d4adc58160512ed9d0a5979b4
>>> Author: Alexey Goncharuk <[email protected]>
>>> Date:   Tue Dec 1 17:37:41 2015 +0300
>>>
>>>     IGNITE-1695 - Fixed writing polymorphic types.
>>>
>>>
>>> Could you please make sure that you have codebase with this commit and
>>> repeat your test?
>>>
>>>
>>> On Mon, Dec 7, 2015 at 1:37 PM, Paulo Pires <[email protected]> wrote:
>>>
>>>> Hi Andrey,
>>>>
>>>> This is great news! While marked as fixed, it doesn't seem to have hit
>>>> the Github clone repo. Am I missing something? Would like to keep on
>>>> testing 1.5 before it gets released.
>>>>
>>>> Pires
>>>>
>>>> On Mon, Dec 7, 2015 at 10:22 AM, Andrey Gura <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Paulo,
>>>>>
>>>>> it is know issue (see JIRA ticket
>>>>> https://issues.apache.org/jira/browse/IGNITE-1695)
>>>>>
>>>>> The problem is fixed and fix will be included into nearest ignite-1.5
>>>>> release.
>>>>>
>>>>> On Mon, Dec 7, 2015 at 2:32 AM, Paulo Pires <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have the following class http://pastebin.com/QD4tmH29 and while it
>>>>>> works fine with 1.4.0 it is not working with 1.5 built from source. The
>>>>>> error is:
>>>>>>
>>>>>> java.lang.ClassCastException: java.util.HashMap cannot be cast to
>>>>>> xxx.DeviceSubscriptionFilterMap
>>>>>>
>>>>>> Ideas?
>>>>>> --
>>>>>> Cheers,
>>>>>> Pires
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Andrey Gura
>>>>> GridGain Systems, Inc.
>>>>> www.gridgain.com
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Cheers,
>>>> Pires
>>>>
>>>
>>>
>>>
>>> --
>>> Andrey Gura
>>> GridGain Systems, Inc.
>>> www.gridgain.com
>>>
>>
>>
>>
>> --
>> Cheers,
>> Pires
>>
>
>

Reply via email to