Fix one more aspect of [JACKSON-802]
diff --git a/release-notes/VERSION b/release-notes/VERSION
index a77b7b0..84f8548 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -8,6 +8,7 @@
Fixes:
+* One more case for [JACKSON-802] (class loading using Class.forName())
* [JACKSON-875]: Enums are not properly serialized when
Feature.USE_ANNOTATIONS is disabled
(reported by Laurent P)
diff --git a/src/mapper/java/org/codehaus/jackson/map/deser/std/ClassDeserializer.java b/src/mapper/java/org/codehaus/jackson/map/deser/std/ClassDeserializer.java
index 8c62e74..2e5d875 100644
--- a/src/mapper/java/org/codehaus/jackson/map/deser/std/ClassDeserializer.java
+++ b/src/mapper/java/org/codehaus/jackson/map/deser/std/ClassDeserializer.java
@@ -7,6 +7,7 @@
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.annotate.JacksonStdImpl;
+import org.codehaus.jackson.map.util.ClassUtil;
/**
*
@@ -26,20 +27,8 @@
// Currently will only accept if given simple class name
if (curr == JsonToken.VALUE_STRING) {
String className = jp.getText();
- // [JACKSON-597]: support primitive types (and void)
- if (className.indexOf('.') < 0) {
- if ("int".equals(className)) return Integer.TYPE;
- if ("long".equals(className)) return Long.TYPE;
- if ("float".equals(className)) return Float.TYPE;
- if ("double".equals(className)) return Double.TYPE;
- if ("boolean".equals(className)) return Boolean.TYPE;
- if ("byte".equals(className)) return Byte.TYPE;
- if ("char".equals(className)) return Character.TYPE;
- if ("short".equals(className)) return Short.TYPE;
- if ("void".equals(className)) return Void.TYPE;
- }
try {
- return Class.forName(jp.getText());
+ return ClassUtil.findClass(className);
} catch (ClassNotFoundException e) {
throw ctxt.instantiationException(_valueClass, e);
}