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

Stephen Flavin updated AVRO-3102:
---------------------------------
    Summary: Avro Java IPC SpecificRequestor fails to convert union null + 
logical type fields  (was: Avro Java IPC responder fails to convert union null 
+ logical type fields)

> Avro Java IPC SpecificRequestor fails to convert union null + logical type 
> fields
> ---------------------------------------------------------------------------------
>
>                 Key: AVRO-3102
>                 URL: https://issues.apache.org/jira/browse/AVRO-3102
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java, logical types
>    Affects Versions: 1.10.2
>         Environment: Avro Version
>  * Avro IPC [1.10.2] 
>  * Avro maven plugin [1.10.2] 
> Java Version [11]
>            Reporter: Stephen Flavin
>            Priority: Minor
>
> *Steps to replicate:*
> 1. Use the maven plugin with the following avdl
> {noformat}
> @namespace("org.example")
> protocol TestService {
>   record MaybeLogicalTypes {
>     union {null, date} dateType = null;
>     union {null, time_ms} timeMsType = null;
>     union {null, timestamp_ms} timestampMsType = null;
>   }
>   MaybeLogicalTypes getMaybeLogicalTypes();
> }{noformat}
> 2. Implement the TestService that returns a MaybeLogicalTypes object with the 
> values populated and start a server e.g.
> {code:java}
> Responder responder = new SpecificResponder(TestService.class,
>           new OKAvroHandler());
> Server server = new NettyServer(responder,
>             new InetSocketAddress("127.0.0.1", port));
> server.start();
> {code}
> 3. Run the client code to request a MaybeLogicalTypes object. 
> {code:java}
> SpecificRequestor.getClient(TestService.class, new 
> HttpTransceiver(url)).getMaybeLogicalTypes(){code}
> The client will error when any of the fields are populated
> {noformat}
>  
> org.apache.avro.AvroRuntimeException: Unknown datum type java.time.Instant: 
> 2021-03-31T11:26:20.123888Z
>                                                 at 
> org.apache.avro.ipc.specific.SpecificRequestor.readError(SpecificRequestor.java:160)
>  ~[avro-ipc-1.10.2.jar:1.10.2]
>                                                 at 
> org.apache.avro.ipc.Requestor$Response.getResponse(Requestor.java:566) 
> ~[avro-ipc-1.10.2.jar:1.10.2]
>                                                 at 
> org.apache.avro.ipc.Requestor$TransceiverCallback.handleResult(Requestor.java:366)
>  ~[avro-ipc-1.10.2.jar:1.10.2]
>                                                 at 
> org.apache.avro.ipc.Requestor$TransceiverCallback.handleResult(Requestor.java:330)
>  ~[avro-ipc-1.10.2.jar:1.10.2]
>                                                 at 
> org.apache.avro.ipc.Transceiver.transceive(Transceiver.java:73) 
> ~[avro-ipc-1.10.2.jar:1.10.2]
>                                                 at 
> org.apache.avro.ipc.Requestor.request(Requestor.java:152) 
> ~[avro-ipc-1.10.2.jar:1.10.2]
>                                                 at 
> org.apache.avro.ipc.Requestor.request(Requestor.java:101) 
> ~[avro-ipc-1.10.2.jar:1.10.2]
>                                                 at 
> org.apache.avro.ipc.specific.SpecificRequestor.invoke(SpecificRequestor.java:108)
>  ~[avro-ipc-1.10.2.jar:1.10.2]
> {noformat}
>  



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

Reply via email to