From 7e5f014755e3e98ce4e11b8a89d800e9ad86eb60 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Sat, 28 Nov 2015 12:27:59 -0800 Subject: [PATCH] Minor improvement to handling of JsonFormat.Value with AnnotationIntrospectorPair, should try merging --- .../introspect/AnnotationIntrospectorPair.java | 10 +++++++--- .../jackson/databind/type/PolymorphicList036Test.java | 5 +++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java index e4d42c0dec..6f83e0d267 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java @@ -404,11 +404,15 @@ public ObjectIdInfo findObjectReferenceInfo(Annotated ann, ObjectIdInfo objectId objectIdInfo = _primary.findObjectReferenceInfo(ann, objectIdInfo); return objectIdInfo; } - + @Override public JsonFormat.Value findFormat(Annotated ann) { - JsonFormat.Value r = _primary.findFormat(ann); - return (r == null) ? _secondary.findFormat(ann) : r; + JsonFormat.Value v1 = _primary.findFormat(ann); + JsonFormat.Value v2 = _secondary.findFormat(ann); + if (v2 == null) { // shouldn't occur but just in case + return v1; + } + return v2.withOverrides(v1); } @Override diff --git a/src/test/java/com/fasterxml/jackson/databind/type/PolymorphicList036Test.java b/src/test/java/com/fasterxml/jackson/databind/type/PolymorphicList036Test.java index 55506a3c3a..168b63608f 100644 --- a/src/test/java/com/fasterxml/jackson/databind/type/PolymorphicList036Test.java +++ b/src/test/java/com/fasterxml/jackson/databind/type/PolymorphicList036Test.java @@ -99,10 +99,11 @@ public void testPolymorphicWithOverride() throws Exception list.add("value 2"); String serialized = MAPPER.writeValueAsString(list); - System.out.println(serialized); +// System.out.println(serialized); StringyList deserialized = MAPPER.readValue(serialized, type); - System.out.println(deserialized); +// System.out.println(deserialized); + assertNotNull(deserialized); } }