You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2022/04/12 11:19:00 UTC
[jira] [Updated] (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:all-tabpanel ]
Roman Puchkovskiy updated IGNITE-16772:
---------------------------------------
Summary: BigInteger can't be serialized by User Object Serialization (was: BigInteger can't be used as Compute argument)
> 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
>
>
> 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)