Skip to content

Commit e741034

Browse files
committed
Fix #1088
1 parent 8e64a43 commit e741034

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

release-notes/CREDITS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,8 @@ Laird Nelson (ljnelson@github)
281281
* Suggested #688: Provide a means for an ObjectMapper to discover mixin annotation
282282
classes on demand
283283
(2.6.0)
284+
* Reported #1088: NPE possibility in SimpleMixinResolver
285+
(2.6.6)
284286

285287
Derk Norton (derknorton@github)
286288
* Suggested #689: Add `ObjectMapper.setDefaultPrettyPrinter(PrettyPrinter)`

release-notes/VERSION

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ Project: jackson-databind
44
=== Releases ===
55
------------------------------------------------------------------------
66

7+
2.6.6 (not released yet)
8+
9+
#1088: NPE possibility in SimpleMixinResolver
10+
(reported by Laird N)
11+
712
2.6.5 (19-Jan-2016)
813

914
#1052: Don't generate a spurious NullNode after parsing an embedded object

src/main/java/com/fasterxml/jackson/databind/deser/std/DateDeserializers.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
import java.util.*;
77

88
import com.fasterxml.jackson.annotation.JsonFormat;
9-
109
import com.fasterxml.jackson.core.JsonParser;
1110
import com.fasterxml.jackson.core.JsonToken;
12-
1311
import com.fasterxml.jackson.databind.BeanProperty;
1412
import com.fasterxml.jackson.databind.DeserializationContext;
1513
import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -18,6 +16,7 @@
1816
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
1917
import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
2018
import com.fasterxml.jackson.databind.introspect.Annotated;
19+
import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
2120
import com.fasterxml.jackson.databind.util.StdDateFormat;
2221

2322
/**
@@ -98,7 +97,7 @@ protected DateBasedDeserializer(DateBasedDeserializer<T> base,
9897
}
9998

10099
protected abstract DateBasedDeserializer<T> withDateFormat(DateFormat df, String formatStr);
101-
100+
102101
@Override
103102
public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property)
104103
throws JsonMappingException
@@ -160,7 +159,7 @@ protected java.util.Date _parseDate(JsonParser p, DeserializationContext ctxt)
160159
}
161160
}
162161
}
163-
// Issue#381
162+
// [databind#381]
164163
if (t == JsonToken.START_ARRAY && ctxt.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) {
165164
p.nextToken();
166165
final Date parsed = _parseDate(p, ctxt);
@@ -175,7 +174,7 @@ protected java.util.Date _parseDate(JsonParser p, DeserializationContext ctxt)
175174
return super._parseDate(p, ctxt);
176175
}
177176
}
178-
177+
179178
/*
180179
/**********************************************************
181180
/* Deserializer implementations for Date types

src/main/java/com/fasterxml/jackson/databind/introspect/SimpleMixInResolver.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,13 @@ public SimpleMixInResolver withoutLocalDefinitions() {
6161
public void setLocalDefinitions(Map<Class<?>, Class<?>> sourceMixins) {
6262
if (sourceMixins == null || sourceMixins.isEmpty()) {
6363
_localMixIns = null;
64+
} else {
65+
Map<ClassKey,Class<?>> mixIns = new HashMap<ClassKey,Class<?>>(sourceMixins.size());
66+
for (Map.Entry<Class<?>,Class<?>> en : sourceMixins.entrySet()) {
67+
mixIns.put(new ClassKey(en.getKey()), en.getValue());
68+
}
69+
_localMixIns = mixIns;
6470
}
65-
Map<ClassKey,Class<?>> mixIns = new HashMap<ClassKey,Class<?>>(sourceMixins.size());
66-
for (Map.Entry<Class<?>,Class<?>> en : sourceMixins.entrySet()) {
67-
mixIns.put(new ClassKey(en.getKey()), en.getValue());
68-
}
69-
_localMixIns = mixIns;
7071
}
7172

7273
public void addLocalDefinition(Class<?> target, Class<?> mixinSource) {

0 commit comments

Comments
 (0)