Skip to content

Commit e104e67

Browse files
committed
Merge branch '2.9'
2 parents d969024 + 881f920 commit e104e67

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

release-notes/VERSION-2.x

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ Project: jackson-databind
1717
#1940: `Float` values with integer value beyond `int` lose precision if
1818
bound to `long`
1919
(reported by Aniruddha M)
20+
#1941: `TypeFactory.constructFromCanonical()` throws NPE for Unparameterized
21+
generic canonical strings
22+
(reported by ayushgp@github)
2023

2124
2.9.4 (24-Jan-2018)
2225

src/main/java/com/fasterxml/jackson/databind/type/TypeParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ protected JavaType parseType(MyTokenizer tokens)
5757
// can be comma that separates types, or closing '>'
5858
tokens.pushBack(token);
5959
}
60-
return _factory._fromClass(null, base, null);
60+
return _factory._fromClass(null, base, TypeBindings.emptyBindings());
6161
}
6262

6363
protected List<JavaType> parseTypes(MyTokenizer tokens)

src/test/java/com/fasterxml/jackson/databind/type/TestTypeFactory.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,22 @@ public void testCanonicalNames()
226226
assertEquals("java.util.EnumMap<com.fasterxml.jackson.databind.type.TestTypeFactory$EnumForCanonical,java.lang.String>",
227227
can);
228228
assertEquals(t, tf.constructFromCanonical(can));
229+
230+
// [databind#1941]: allow "raw" types too
231+
232+
t = tf.constructFromCanonical("java.util.List");
233+
assertEquals(List.class, t.getRawClass());
234+
assertEquals(CollectionType.class, t.getClass());
235+
// 01-Mar-2018, tatu: not 100% should we expect type parameters here...
236+
// But currently we do NOT get any
237+
/*
238+
assertEquals(1, t.containedTypeCount());
239+
assertEquals(Object.class, t.containedType(0).getRawClass());
240+
*/
241+
assertEquals(Object.class, t.getContentType().getRawClass());
242+
can = t.toCanonical();
243+
assertEquals("java.util.List<java.lang.Object>", can);
244+
assertEquals(t, tf.constructFromCanonical(can));
229245
}
230246

231247
// [databind#1768]

0 commit comments

Comments
 (0)