Skip to content

Commit 881f920

Browse files
committed
Merge branch '2.8' into 2.9
2 parents 9b1b35d + 18dc249 commit 881f920

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
@@ -231,6 +231,22 @@ public void testCanonicalNames()
231231
assertEquals("java.util.EnumMap<com.fasterxml.jackson.databind.type.TestTypeFactory$EnumForCanonical,java.lang.String>",
232232
can);
233233
assertEquals(t, tf.constructFromCanonical(can));
234+
235+
// [databind#1941]: allow "raw" types too
236+
237+
t = tf.constructFromCanonical("java.util.List");
238+
assertEquals(List.class, t.getRawClass());
239+
assertEquals(CollectionType.class, t.getClass());
240+
// 01-Mar-2018, tatu: not 100% should we expect type parameters here...
241+
// But currently we do NOT get any
242+
/*
243+
assertEquals(1, t.containedTypeCount());
244+
assertEquals(Object.class, t.containedType(0).getRawClass());
245+
*/
246+
assertEquals(Object.class, t.getContentType().getRawClass());
247+
can = t.toCanonical();
248+
assertEquals("java.util.List<java.lang.Object>", can);
249+
assertEquals(t, tf.constructFromCanonical(can));
234250
}
235251

236252
// [databind#1768]

0 commit comments

Comments
 (0)