Skip to content

Commit 3ef01e0

Browse files
committed
Update release notes wrt #826, change default settings of concurrent map
1 parent 1ae9e57 commit 3ef01e0

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

release-notes/CREDITS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,3 +285,7 @@ Jeff Schnitzer (stickfigure@github)
285285
* Suggested #504: Add `DeserializationFeature.USE_LONG_FOR_INTS`
286286
(2.6.0)
287287

288+
Lars Pfannenschmidt (larsp@github)
289+
* Contributed #826: Replaced synchronized HashMap with ConcurrentHashMap in
290+
TypeDeserializerBase._findDeserializer
291+
(2.6.0)

release-notes/VERSION

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ Project: jackson-databind
6767
read-only/write-only use cases
6868
#824: Contextual `TimeZone` changes don't take effect wrt `java.util.Date`,
6969
`java.util.Calendar` serialization
70+
#826: Replaced synchronized HashMap with ConcurrentHashMap in TypeDeserializerBase._findDeserializer
71+
(contributed by Lars P)
7072
- Remove old cglib compatibility tests; cause problems in Eclipse
7173

7274
2.5.4 (not yet released)

src/main/java/com/fasterxml/jackson/databind/jsontype/impl/TypeDeserializerBase.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,16 @@ public abstract class TypeDeserializerBase
6565
/* Life-cycle
6666
/**********************************************************
6767
*/
68-
68+
6969
protected TypeDeserializerBase(JavaType baseType, TypeIdResolver idRes,
7070
String typePropertyName, boolean typeIdVisible, Class<?> defaultImpl)
7171
{
7272
_baseType = baseType;
7373
_idResolver = idRes;
7474
_typePropertyName = typePropertyName;
7575
_typeIdVisible = typeIdVisible;
76-
_deserializers = new ConcurrentHashMap<String, JsonDeserializer<Object>>();
76+
// defaults are fine, although concurrency of 4 bit more frugal than 16:
77+
_deserializers = new ConcurrentHashMap<String, JsonDeserializer<Object>>(16, 0.75f, 4);
7778
if (defaultImpl == null) {
7879
_defaultImpl = null;
7980
} else {
@@ -83,7 +84,6 @@ protected TypeDeserializerBase(JavaType baseType, TypeIdResolver idRes,
8384
*/
8485
_defaultImpl = baseType.forcedNarrowBy(defaultImpl);
8586
}
86-
8787
_property = null;
8888
}
8989

@@ -96,13 +96,12 @@ protected TypeDeserializerBase(TypeDeserializerBase src, BeanProperty property)
9696
_deserializers = src._deserializers;
9797
_defaultImpl = src._defaultImpl;
9898
_defaultImplDeserializer = src._defaultImplDeserializer;
99-
10099
_property = property;
101100
}
102101

103102
@Override
104103
public abstract TypeDeserializer forProperty(BeanProperty prop);
105-
104+
106105
/*
107106
/**********************************************************
108107
/* Accessors

0 commit comments

Comments
 (0)