[ https://issues.apache.org/jira/browse/AVRO-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16498449#comment-16498449 ]
Zoltan Farkas commented on AVRO-2032: ------------------------------------- I resolved this issue in my fork, it is fairly a small fix, here is the detail: [https://github.com/zolyfarkas/avro/commit/afe6c04f38c535533c33ed4c303fb011df828606] I will not have time to work on a PR anytime soon....so any help appreciated... > Unable to decode JSON-encoded Double.NaN, Double.POSITIVE_INFINITY or > Double.NEGATIVE_INFINITY > ---------------------------------------------------------------------------------------------- > > Key: AVRO-2032 > URL: https://issues.apache.org/jira/browse/AVRO-2032 > Project: Avro > Issue Type: Bug > Components: java > Affects Versions: 1.8.1 > Reporter: Pieter Dekinder > Priority: Major > > When using the JsonEncoder to serialize Double.NaN, Double.POSITIVE_INFINITY > or Double.NEGATIVE_INFINITY to resulting JSON cannot be parsed by the > JsonDencoder. > An AvroTypeException is thrown with the message "Expected double. Got > VALUE_STRING". > When using BinaryEncoder/BinaryDecoder, it works fine. > This JUnit code snippet will reproduce the issue: > @Test > public void test() throws Exception { > Schema schema = SchemaBuilder.builder() > .record("record") > .fields() > .optionalDouble("number1") > .optionalDouble("number2") > .optionalDouble("number3") > .endRecord(); > GenericData.Record record = new GenericData.Record(schema); > record.put("number1", Double.NaN); > record.put("number2", Double.POSITIVE_INFINITY); > record.put("number3", Double.NEGATIVE_INFINITY); > ByteArrayOutputStream out = new ByteArrayOutputStream(); > JsonEncoder encoder = EncoderFactory.get().jsonEncoder(schema, out); > new GenericDatumWriter<GenericRecord>(schema).write(record, encoder); > encoder.flush(); > System.out.println(out); > Decoder decoder = DecoderFactory.get().jsonDecoder(schema, > out.toString()); > GenericData.Record deserialized = new GenericData.Record(schema); > new GenericDatumReader<GenericRecord>(schema).read(deserialized, > decoder); > } -- This message was sent by Atlassian JIRA (v7.6.3#76005)