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

Pavel Tupitsyn updated IGNITE-16772:
------------------------------------
    Description: 
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).

  was:
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}


> BigInteger can't be used as Compute argument
> --------------------------------------------
>
>                 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)

Reply via email to