File tree 2 files changed +12
-1
lines changed
src/main/java/com/fasterxml/jackson/databind
2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ Project: jackson-databind
12
12
#899: Problem serializing `ObjectReader` (and possibly `ObjectMapper`)
13
13
#913: ObjectMapper.copy does not preserve MappingJsonFactory features
14
14
(reported, fixed by Daniel W)
15
+ #922: ObjectMapper.copy() does not preserve _registeredModuleTypes
15
16
16
17
2.6.1 (09-Aug-2015)
17
18
Original file line number Diff line number Diff line change @@ -481,6 +481,14 @@ protected ObjectMapper(ObjectMapper src)
481
481
482
482
// Default serializer factory is stateless, can just assign
483
483
_serializerFactory = src ._serializerFactory ;
484
+
485
+ // as per [databind#922], make sure to copy registered modules as appropriate
486
+ Set <Object > reg = _registeredModuleTypes ;
487
+ if (reg == null ) {
488
+ _registeredModuleTypes = null ;
489
+ } else {
490
+ _registeredModuleTypes = new LinkedHashSet <Object >(reg );
491
+ }
484
492
}
485
493
486
494
/**
@@ -681,7 +689,9 @@ public ObjectMapper registerModule(Module module)
681
689
Object typeId = module .getTypeId ();
682
690
if (typeId != null ) {
683
691
if (_registeredModuleTypes == null ) {
684
- _registeredModuleTypes = new HashSet <Object >();
692
+ // plus let's keep them in order too, easier to debug or expose
693
+ // in registration order if that matter
694
+ _registeredModuleTypes = new LinkedHashSet <Object >();
685
695
}
686
696
// try adding; if already had it, should skip
687
697
if (!_registeredModuleTypes .add (typeId )) {
You can’t perform that action at this time.
0 commit comments