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

Alexander updated ARROW-10939:
------------------------------
    Description: 
An error has been found when one sends an empty record batch from C# server and 
tries to read it with the java client.

>From investigation the java client requires the protobuf tags to be sent in 
>the message even though it is empty. Java code can be seen here:

[https://github.com/apache/arrow/blob/master/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ArrowMessage.java]

Line 285-294

Normal functionality of gRPC is to exclude the entire tag if an object is 
empty, example code from generated csharp:

if (DataBody.Length != 0)

{ output.WriteRawTag(194, 62); output.WriteBytes(DataBody); }

To fix this so the csharp version is compatible with the java client requires a 
non empty flight data body must be sent or at least the tag of the body.

  was:
An error has been found when one sends an empty record batch from C# server and 
tries to read it with the java client.

>From investigation the java client requires the protobuf tags to be sent in 
>the message even though it is empty. Java code can be seen here:

[https://github.com/apache/arrow/blob/master/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ArrowMessage.java]

Normal functionality of gRPC is to exclude the entire tag if an object is 
empty, example code from generated csharp:

if (DataBody.Length != 0) {
 output.WriteRawTag(194, 62);
 output.WriteBytes(DataBody);
 }

To fix this so the csharp version is compatible with the java client requires a 
non empty flight data body must be sent or at least the tag of the body.


> [C#][FlightRPC] incompatible with java client for empty record batches
> ----------------------------------------------------------------------
>
>                 Key: ARROW-10939
>                 URL: https://issues.apache.org/jira/browse/ARROW-10939
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C#, FlightRPC
>            Reporter: Alexander
>            Priority: Major
>
> An error has been found when one sends an empty record batch from C# server 
> and tries to read it with the java client.
> From investigation the java client requires the protobuf tags to be sent in 
> the message even though it is empty. Java code can be seen here:
> [https://github.com/apache/arrow/blob/master/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ArrowMessage.java]
> Line 285-294
> Normal functionality of gRPC is to exclude the entire tag if an object is 
> empty, example code from generated csharp:
> if (DataBody.Length != 0)
> { output.WriteRawTag(194, 62); output.WriteBytes(DataBody); }
> To fix this so the csharp version is compatible with the java client requires 
> a non empty flight data body must be sent or at least the tag of the body.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to