diff --git a/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java b/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java index 9e439a722..1cdfd2f26 100644 --- a/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java +++ b/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java @@ -147,7 +147,6 @@ public static AvroMapper.Builder xmlBuilder() { /** * @since 2.10 */ - @SuppressWarnings("unchecked") public static AvroMapper.Builder builder() { return new AvroMapper.Builder(new AvroMapper()); } diff --git a/avro/src/test/java/com/fasterxml/jackson/dataformat/avro/failing/POJOEvolution164Test.java b/avro/src/test/java/com/fasterxml/jackson/dataformat/avro/failing/POJOEvolution164Test.java new file mode 100644 index 000000000..9633304dd --- /dev/null +++ b/avro/src/test/java/com/fasterxml/jackson/dataformat/avro/failing/POJOEvolution164Test.java @@ -0,0 +1,58 @@ +package com.fasterxml.jackson.dataformat.avro.failing; + +import com.fasterxml.jackson.dataformat.avro.AvroMapper; +import com.fasterxml.jackson.dataformat.avro.AvroSchema; +import com.fasterxml.jackson.dataformat.avro.AvroTestBase; + +public class POJOEvolution164Test extends AvroTestBase +{ + static class MyClass { + public String stringField; + public long longField; + } + + private final AvroMapper MAPPER = getMapper(); + + public void testBase() throws Exception + { + final String WRITER_SCHEMA_SRC = "{\n" + + " \"type\": \"record\",\n" + + " \"name\": \"MyClass\",\n" + + " \"fields\": [\n" + + " { \"name\": \"longField\", \"type\": \"long\"\n },\n" + + " { \"name\": \"stringField\",\n" + + " \"type\": [\n" + + " \"null\",\n" + + " \"string\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}"; + final String READER_SCHEMA_SRC = "{\n" + + " \"type\": \"record\",\n" + + " \"name\": \"MyClass\",\n" + + " \"fields\": [\n" + + " {\"name\": \"stringField\",\n" + + " \"type\": [\n" + + " \"null\",\n" + + " \"string\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}"; + + final AvroSchema readerSchema = MAPPER.schemaFrom(READER_SCHEMA_SRC); + final AvroSchema writerSchema = MAPPER.schemaFrom(WRITER_SCHEMA_SRC); + + MyClass aClass = new MyClass(); + aClass.stringField = "String value"; + aClass.longField = 42; + byte[] avro = MAPPER.writer() + .with(writerSchema) + .writeValueAsBytes(aClass); + MyClass result = MAPPER.readerFor(MyClass.class) + .with(readerSchema) + .readValue(avro); + assertEquals(aClass.stringField, result.stringField); + } +}