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

Aleksandr Polovtcev updated IGNITE-18589:
-----------------------------------------
    Description: 
Consider the following class hierarchy:

{code:java}
@Transferable
interface A extends NetworkMessage {}

@Transferable
interface B extends NetworkMessage {
    A[] arrayField();
}
{code}

When sending a message of type {{B}} from one node to another, the following 
exception occurs: 

{{java.lang.IllegalStateException: Cannot merge descriptors in the correct 
order; a cycle?}}

This happens, because a descriptor of type {{A}} can't be found on the 
receiving node.

This problem also appears if we change {{B}}'s field type to {{Collection<A>}}, 
but provide {{Arrays.asList(new AImpl())}}, because the wrapper contains an 
array inside.
 


  was:
Consider the following class hierarchy:

{code:java}
@Transferable
interface A extends NetworkMessage {}

@Transferable
interface B extends NetworkMessage {
    A[] arrayField();
}
{code}

When sending a message of type {{B}} from one node to another, the following 
exception occurs: 

{{java.lang.IllegalStateException: Cannot merge descriptors in the correct 
order; a cycle?}}

This happens, because a descriptor of type {{A}} can't be found on the 
receiving node.

This problem also appears if we change {{B}}'s field to {{Collection<A>}}, but 
provide {{Arrays.asList(new AImpl())}}, because the wrapper contains an array 
inside.
 



> Network serialization of arrays of NetworkMessage objects doesn't work
> ----------------------------------------------------------------------
>
>                 Key: IGNITE-18589
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18589
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Aleksandr Polovtcev
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>
> Consider the following class hierarchy:
> {code:java}
> @Transferable
> interface A extends NetworkMessage {}
> @Transferable
> interface B extends NetworkMessage {
>     A[] arrayField();
> }
> {code}
> When sending a message of type {{B}} from one node to another, the following 
> exception occurs: 
> {{java.lang.IllegalStateException: Cannot merge descriptors in the correct 
> order; a cycle?}}
> This happens, because a descriptor of type {{A}} can't be found on the 
> receiving node.
> This problem also appears if we change {{B}}'s field type to 
> {{Collection<A>}}, but provide {{Arrays.asList(new AImpl())}}, because the 
> wrapper contains an array inside.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to