Skip to content

Commit 38db64e

Browse files
committed
Warn when Jackson + Kotlin are used without jackson-module-kotlin
Issue: SPR-15658
1 parent efb735a commit 38db64e

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
5454
import com.fasterxml.jackson.dataformat.xml.XmlFactory;
5555
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
56+
import org.apache.commons.logging.Log;
57+
import org.apache.commons.logging.LogFactory;
5658

5759
import org.springframework.beans.BeanUtils;
5860
import org.springframework.beans.FatalBeanException;
@@ -93,6 +95,16 @@
9395
*/
9496
public class Jackson2ObjectMapperBuilder {
9597

98+
private final Log logger = LogFactory.getLog(getClass());
99+
100+
private final Map<Class<?>, Class<?>> mixIns = new HashMap<>();
101+
102+
private final Map<Class<?>, JsonSerializer<?>> serializers = new LinkedHashMap<>();
103+
104+
private final Map<Class<?>, JsonDeserializer<?>> deserializers = new LinkedHashMap<>();
105+
106+
private final Map<Object, Boolean> features = new HashMap<>();
107+
96108
private boolean createXmlMapper = false;
97109

98110
private JsonFactory factory;
@@ -113,14 +125,6 @@ public class Jackson2ObjectMapperBuilder {
113125

114126
private FilterProvider filters;
115127

116-
private final Map<Class<?>, Class<?>> mixIns = new HashMap<>();
117-
118-
private final Map<Class<?>, JsonSerializer<?>> serializers = new LinkedHashMap<>();
119-
120-
private final Map<Class<?>, JsonDeserializer<?>> deserializers = new LinkedHashMap<>();
121-
122-
private final Map<Object, Boolean> features = new HashMap<>();
123-
124128
private List<Module> modules;
125129

126130
private Class<? extends Module>[] moduleClasses;
@@ -762,7 +766,7 @@ private void registerWellKnownModulesIfAvailable(ObjectMapper objectMapper) {
762766
objectMapper.registerModule(BeanUtils.instantiateClass(kotlinModule));
763767
}
764768
catch (ClassNotFoundException ex) {
765-
// jackson-module-kotlin not available
769+
logger.warn("For Jackson Kotlin classes support please add \"com.fasterxml.jackson.module:jackson-module-kotlin\" to the classpath");
766770
}
767771
}
768772
}

0 commit comments

Comments
 (0)