the exception stack is like blow, and we konw The frequent throwing of exceptions can impact system performance. what can we do about this ?
"main@1" prio=5 tid=0x1 nid=NA runnable
java.lang.Thread.State: RUNNABLE
at java.lang.ArrayIndexOutOfBoundsException.<init>(ArrayIndexOutOfBoundsException.java:65)
at sun.reflect.generics.parser.SignatureParser.current(SignatureParser.java:95)
at sun.reflect.generics.parser.SignatureParser.parseSuperInterfaces(SignatureParser.java:559)
at sun.reflect.generics.parser.SignatureParser.parseClassSignature(SignatureParser.java:214)
at sun.reflect.generics.parser.SignatureParser.parseClassSig(SignatureParser.java:156)
at sun.reflect.generics.repository.ClassRepository.parse(ClassRepository.java:57)
at sun.reflect.generics.repository.ClassRepository.parse(ClassRepository.java:41)
at sun.reflect.generics.repository.AbstractRepository.<init>(AbstractRepository.java:74)
at sun.reflect.generics.repository.GenericDeclRepository.<init>(GenericDeclRepository.java:49)
at sun.reflect.generics.repository.ClassRepository.<init>(ClassRepository.java:53)
at sun.reflect.generics.repository.ClassRepository.make(ClassRepository.java:70)
at sun.reflect.generics.repository.ClassRepository.<clinit>(ClassRepository.java:43)
at java.lang.Class.getGenericInfo(Class.java:2548)
at java.lang.Class.getGenericSuperclass(Class.java:765)
at org.codehaus.jackson.type.TypeReference.<init>(TypeReference.java:33)
And the test case is very simple:
public class ATest {
public static void main(String[] args) {
String str = "{\"aa\":\"bb\"}";
try {
Object o = JacksonMapper.getInstance()
.readValue(str, new TypeReference<Map<String, String>>() {
});
} catch (IOException e) {
e.printStackTrace();
}
}
}