Skip to content

Commit 7d0389c

Browse files
committed
Make ClassModel immutable
JAVA-3456
1 parent 51fe9b5 commit 7d0389c

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

bson/src/main/org/bson/codecs/pojo/ClassModel.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616

1717
package org.bson.codecs.pojo;
1818

19+
import java.util.ArrayList;
1920
import java.util.Collections;
21+
import java.util.HashMap;
2022
import java.util.List;
2123
import java.util.Map;
2224

@@ -45,13 +47,14 @@ public final class ClassModel<T> {
4547
this.name = clazz.getSimpleName();
4648
this.type = clazz;
4749
this.hasTypeParameters = clazz.getTypeParameters().length > 0;
48-
this.propertyNameToTypeParameterMap = Collections.unmodifiableMap(propertyNameToTypeParameterMap);
50+
this.propertyNameToTypeParameterMap = Collections.unmodifiableMap(
51+
new HashMap<String, TypeParameterMap>(propertyNameToTypeParameterMap));
4952
this.instanceCreatorFactory = instanceCreatorFactory;
5053
this.discriminatorEnabled = discriminatorEnabled;
5154
this.discriminatorKey = discriminatorKey;
5255
this.discriminator = discriminator;
5356
this.idPropertyModelHolder = idPropertyModelHolder;
54-
this.propertyModels = Collections.unmodifiableList(propertyModels);
57+
this.propertyModels = Collections.unmodifiableList(new ArrayList<PropertyModel<?>>(propertyModels));
5558
}
5659

5760
/**

0 commit comments

Comments
 (0)