[
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)