You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Semyon Danilov (Jira)" <ji...@apache.org> on 2022/04/14 09:49:00 UTC

[jira] [Commented] (IGNITE-16772) BigInteger can't be serialized by User Object Serialization

    [ https://issues.apache.org/jira/browse/IGNITE-16772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17522200#comment-17522200 ] 

Semyon Danilov commented on IGNITE-16772:
-----------------------------------------

The patch looks good to me

> BigInteger can't be serialized by User Object Serialization
> -----------------------------------------------------------
>
>                 Key: IGNITE-16772
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16772
>             Project: Ignite
>          Issue Type: Bug
>          Components: compute
>    Affects Versions: 3.0.0-alpha5
>            Reporter: Pavel Tupitsyn
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-alpha5
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> When trying to pass *BigInteger.TEN* to *IgniteCompute#execute*:
> {code}
> Caused by: class org.apache.ignite.lang.IgniteException: Failed to marshal message: Cannot invoke writeObject()
> 	at org.apache.ignite.network.DefaultMessagingService.sendMessage0(DefaultMessagingService.java:250)
> 	at org.apache.ignite.network.DefaultMessagingService.lambda$sendMessage0$1(DefaultMessagingService.java:241)
> 	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
> 	... 3 more
> Caused by: class org.apache.ignite.internal.network.serialization.marshal.MarshalException: Cannot invoke writeObject()
> 	at org.apache.ignite.internal.network.serialization.marshal.StructuredObjectMarshaller.writeWithWriteObject(StructuredObjectMarshaller.java:106)
> 	at org.apache.ignite.internal.network.serialization.marshal.StructuredObjectMarshaller.writeStructuredObjectLayer(StructuredObjectMarshaller.java:86)
> 	at org.apache.ignite.internal.network.serialization.marshal.StructuredObjectMarshaller.writeStructuredObject(StructuredObjectMarshaller.java:79)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.writeObject(DefaultUserObjectMarshaller.java:275)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshalIdentifiable(DefaultUserObjectMarshaller.java:233)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshalToOutput(DefaultUserObjectMarshaller.java:172)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshalShared(DefaultUserObjectMarshaller.java:144)
> 	at org.apache.ignite.internal.network.serialization.marshal.BuiltInContainerMarshallers.writeGenericRefArray(BuiltInContainerMarshallers.java:108)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.writeObject(DefaultUserObjectMarshaller.java:268)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshalIdentifiable(DefaultUserObjectMarshaller.java:233)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshalToOutput(DefaultUserObjectMarshaller.java:172)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshalShared(DefaultUserObjectMarshaller.java:144)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshalShared(DefaultUserObjectMarshaller.java:135)
> 	at org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.marshal(DefaultUserObjectMarshaller.java:108)
> 	at org.apache.ignite.internal.compute.message.ExecuteRequestImpl.prepareMarshal(ExecuteRequestImpl.java:82)
> 	at org.apache.ignite.internal.network.message.InvokeRequestImpl.prepareMarshal(InvokeRequestImpl.java:72)
> 	at org.apache.ignite.network.DefaultMessagingService.beforeRead(DefaultMessagingService.java:259)
> 	at org.apache.ignite.network.DefaultMessagingService.sendMessage0(DefaultMessagingService.java:248)
> 	... 5 more
> Caused by: class org.apache.ignite.internal.network.serialization.SpecialMethodInvocationException: writeObject() invocation failed on 10
> 	at org.apache.ignite.internal.network.serialization.SpecialSerializationMethodsImpl.writeObject(SpecialSerializationMethodsImpl.java:130)
> 	at org.apache.ignite.internal.network.serialization.marshal.StructuredObjectMarshaller.writeWithWriteObject(StructuredObjectMarshaller.java:103)
> 	... 22 more
> Caused by: java.lang.reflect.InvocationTargetException
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> 	at org.apache.ignite.internal.network.serialization.SpecialSerializationMethodsImpl.writeObject(SpecialSerializationMethodsImpl.java:128)
> 	... 23 more
> Caused by: java.lang.IllegalStateException: Field java.math.BigInteger#magnitude is missing locally, no accesses to it should be performed, this is a bug
> 	at org.apache.ignite.internal.network.serialization.BrokenFieldAccessor.brokenException(BrokenFieldAccessor.java:141)
> 	at org.apache.ignite.internal.network.serialization.BrokenFieldAccessor.getObject(BrokenFieldAccessor.java:35)
> 	at org.apache.ignite.internal.network.serialization.marshal.StructuredObjectMarshaller.getFieldValue(StructuredObjectMarshaller.java:171)
> 	at org.apache.ignite.internal.network.serialization.marshal.StructuredObjectMarshaller.writeNullsBitSet(StructuredObjectMarshaller.java:143)
> 	at org.apache.ignite.internal.network.serialization.marshal.UosObjectOutputStream$UosPutField.write(UosObjectOutputStream.java:322)
> 	at org.apache.ignite.internal.network.serialization.marshal.UosObjectOutputStream.writeFields(UosObjectOutputStream.java:202)
> 	at java.base/java.math.BigInteger.writeObject(BigInteger.java:4722)
> 	... 28 more
> {code}
> To reproduce, uncomment the last line in *ItThinClientComputeTest#testAllSupportedArgTypes* (IGNITE-16734).



--
This message was sent by Atlassian Jira
(v8.20.1#820001)