Skip to content

Commit facee9c

Browse files
authored
Fixes #5107: make KeyDeserializers use supplier too (#5108)
1 parent f471fd4 commit facee9c

File tree

4 files changed

+6
-6
lines changed

4 files changed

+6
-6
lines changed

src/main/java/tools/jackson/databind/deser/BasicDeserializerFactory.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1208,14 +1208,14 @@ public KeyDeserializer createKeyDeserializer(DeserializationContext ctxt,
12081208
JavaType type)
12091209
{
12101210
final DeserializationConfig config = ctxt.getConfig();
1211-
final BeanDescription beanDesc = ctxt.introspectBeanDescription(type);
1211+
final BeanDescription.Supplier beanDescRef = ctxt.lazyIntrospectBeanDescription(type);
12121212

12131213
// [databind#2452]: Support `@JsonDeserialize(keyUsing = ...)`
1214-
KeyDeserializer deser = findKeyDeserializerFromAnnotation(ctxt, beanDesc.getClassInfo());
1214+
KeyDeserializer deser = findKeyDeserializerFromAnnotation(ctxt, beanDescRef.getClassInfo());
12151215

12161216
if ((deser == null) && _factoryConfig.hasKeyDeserializers()) {
12171217
for (KeyDeserializers d : _factoryConfig.keyDeserializers()) {
1218-
deser = d.findKeyDeserializer(type, config, beanDesc);
1218+
deser = d.findKeyDeserializer(type, config, beanDescRef);
12191219
if (deser != null) {
12201220
break;
12211221
}

src/main/java/tools/jackson/databind/deser/KeyDeserializers.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
public interface KeyDeserializers
1515
{
1616
public KeyDeserializer findKeyDeserializer(JavaType type, DeserializationConfig config,
17-
BeanDescription beanDesc);
17+
BeanDescription.Supplier beanDescRef);
1818
}

src/main/java/tools/jackson/databind/deser/jdk/JDKKeyDeserializers.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ private static AnnotatedMethod _findExplicitStringFactoryMethod(DeserializationC
180180

181181
@Override
182182
public KeyDeserializer findKeyDeserializer(JavaType type,
183-
DeserializationConfig config, BeanDescription beanDesc)
183+
DeserializationConfig config, BeanDescription.Supplier beanDescRef)
184184
{
185185
Class<?> raw = type.getRawClass();
186186
// 23-Apr-2013, tatu: Map primitive types, just in case one was given

src/main/java/tools/jackson/databind/module/SimpleKeyDeserializers.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public SimpleKeyDeserializers addDeserializer(Class<?> forClass, KeyDeserializer
5050

5151
@Override
5252
public KeyDeserializer findKeyDeserializer(JavaType type,
53-
DeserializationConfig config, BeanDescription beanDesc)
53+
DeserializationConfig config, BeanDescription.Supplier beanDescRef)
5454
{
5555
if (_classMappings == null) {
5656
return null;

0 commit comments

Comments
 (0)