Skip to content

Commit 9e2a4a9

Browse files
committed
Backport fix #2374
1 parent e12eea6 commit 9e2a4a9

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

release-notes/CREDITS-2.x

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,10 @@ Cyril Martin ([email protected])
843843
does not provide "Type(Type(null))"
844844
(2.9.9)
845845

846-
Daniil Barvitsky (dbarvitsky@github(
846+
Daniil Barvitsky (dbarvitsky@github)
847847
* Reported #2324: `StringCollectionDeserializer` fails with custom collection
848848
(2.9.9)
849+
850+
Edgar Asatryan (nstdio@github)
851+
* Reported #2374: `ObjectMapper. getRegisteredModuleIds()` throws NPE if no modules registered
852+
(2.9.9.1)

release-notes/VERSION-2.x

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Project: jackson-databind
88

99
#2326: Block one more gadget type (CVE-2019-12384)
1010
#2341: Block one more gadget type (CVE-2019-12814)
11+
#2374: `ObjectMapper. getRegisteredModuleIds()` throws NPE if no modules registered
12+
(reported by Edgar A)
1113

1214
2.9.9 (16-May-2019)
1315

src/main/java/com/fasterxml/jackson/databind/ObjectMapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -962,7 +962,8 @@ public ObjectMapper registerModules(Iterable<? extends Module> modules)
962962
*/
963963
public Set<Object> getRegisteredModuleIds()
964964
{
965-
return Collections.unmodifiableSet(_registeredModuleTypes);
965+
return (_registeredModuleTypes == null) ?
966+
Collections.emptySet() : Collections.unmodifiableSet(_registeredModuleTypes);
966967
}
967968

968969
/**

src/test/java/com/fasterxml/jackson/databind/module/SimpleModuleTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,13 +319,18 @@ public void testGetRegisteredModules()
319319
AnotherSimpleModule mod2 = new AnotherSimpleModule("test2", Version.unknownVersion());
320320

321321
ObjectMapper mapper = new ObjectMapper();
322+
322323
mapper.registerModule(mod1);
323324
mapper.registerModule(mod2);
324325

325326
Set<Object> registeredModuleIds = mapper.getRegisteredModuleIds();
326327
assertEquals(2, registeredModuleIds.size());
327328
assertTrue(registeredModuleIds.contains(mod1.getTypeId()));
328329
assertTrue(registeredModuleIds.contains(mod2.getTypeId()));
330+
331+
// 01-Jul-2019, [databind#2374]: verify empty list is fine
332+
mapper = new ObjectMapper();
333+
assertEquals(0, mapper.getRegisteredModuleIds().size());
329334
}
330335

331336
/*

0 commit comments

Comments
 (0)