From 05b96fc166f2c8bd9a5c683f61113c92197c7dcd Mon Sep 17 00:00:00 2001 From: joohyukkim Date: Mon, 13 Mar 2023 21:15:37 +0900 Subject: [PATCH 1/6] replace catching `Throwable` with `Exception` --- .../deser/std/StdValueInstantiator.java | 26 +++++++++---------- .../jackson/databind/ext/DOMDeserializer.java | 6 ++--- .../jackson/databind/ext/Java7Support.java | 2 +- .../databind/ext/NioPathDeserializer.java | 5 ++-- .../databind/ext/OptionalHandlerFactory.java | 8 +++--- .../JacksonAnnotationIntrospector.java | 2 +- .../jackson/databind/util/ClassUtil.java | 6 ++--- .../jackson/databind/util/StdDateFormat.java | 2 +- 8 files changed, 28 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdValueInstantiator.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdValueInstantiator.java index eb2ddd3763..09630b36ab 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/StdValueInstantiator.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/StdValueInstantiator.java @@ -341,7 +341,7 @@ public Object createFromString(DeserializationContext ctxt, String value) throws if (_fromStringCreator != null) { try { return _fromStringCreator.call1(value); - } catch (Throwable t) { + } catch (Exception t) { return ctxt.handleInstantiationProblem(_fromStringCreator.getDeclaringClass(), value, rewrapCtorProblem(ctxt, t)); } @@ -357,7 +357,7 @@ public Object createFromInt(DeserializationContext ctxt, int value) throws IOExc Object arg = Integer.valueOf(value); try { return _fromIntCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromIntCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } @@ -367,7 +367,7 @@ public Object createFromInt(DeserializationContext ctxt, int value) throws IOExc Object arg = Long.valueOf(value); try { return _fromLongCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } @@ -377,7 +377,7 @@ public Object createFromInt(DeserializationContext ctxt, int value) throws IOExc Object arg = BigInteger.valueOf(value); try { return _fromBigIntegerCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromBigIntegerCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0) ); @@ -394,7 +394,7 @@ public Object createFromLong(DeserializationContext ctxt, long value) throws IOE Long arg = Long.valueOf(value); try { return _fromLongCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0) ); @@ -405,7 +405,7 @@ arg, rewrapCtorProblem(ctxt, t0) BigInteger arg = BigInteger.valueOf(value); try { return _fromBigIntegerCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromBigIntegerCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0) ); @@ -421,7 +421,7 @@ public Object createFromBigInteger(DeserializationContext ctxt, BigInteger value if (_fromBigIntegerCreator != null) { try { return _fromBigIntegerCreator.call1(value); - } catch (Throwable t) { + } catch (Exception t) { return ctxt.handleInstantiationProblem(_fromBigIntegerCreator.getDeclaringClass(), value, rewrapCtorProblem(ctxt, t) ); @@ -438,7 +438,7 @@ public Object createFromDouble(DeserializationContext ctxt, double value) throws Double arg = Double.valueOf(value); try { return _fromDoubleCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromDoubleCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } @@ -448,7 +448,7 @@ public Object createFromDouble(DeserializationContext ctxt, double value) throws BigDecimal arg = BigDecimal.valueOf(value); try { return _fromBigDecimalCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromBigDecimalCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } @@ -463,7 +463,7 @@ public Object createFromBigDecimal(DeserializationContext ctxt, BigDecimal value if (_fromBigDecimalCreator != null) { try { return _fromBigDecimalCreator.call1(value); - } catch (Throwable t) { + } catch (Exception t) { return ctxt.handleInstantiationProblem(_fromBigDecimalCreator.getDeclaringClass(), value, rewrapCtorProblem(ctxt, t) ); @@ -479,7 +479,7 @@ value, rewrapCtorProblem(ctxt, t) if (dbl != null) { try { return _fromDoubleCreator.call1(dbl); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromDoubleCreator.getDeclaringClass(), dbl, rewrapCtorProblem(ctxt, t0)); } @@ -507,7 +507,7 @@ public Object createFromBoolean(DeserializationContext ctxt, boolean value) thro final Boolean arg = Boolean.valueOf(value); try { return _fromBooleanCreator.call1(arg); - } catch (Throwable t0) { + } catch (Exception t0) { return ctxt.handleInstantiationProblem(_fromBooleanCreator.getDeclaringClass(), arg, rewrapCtorProblem(ctxt, t0)); } @@ -654,7 +654,7 @@ private Object _createUsingDelegate(AnnotatedWithParams delegateCreator, } // and then try calling with full set of arguments return delegateCreator.call(args); - } catch (Throwable t) { + } catch (Exception t) { throw rewrapCtorProblem(ctxt, t); } } diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java index 48fc6269fe..cccf0fa622 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java @@ -35,7 +35,7 @@ public abstract class DOMDeserializer extends FromStringDeserializer parserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); } catch(ParserConfigurationException pce) { // not much point to do anything; could log but... - } catch (Error e) { + } catch (Exception e) { // 14-Jul-2016, tatu: Not sure how or why, but during code coverage runs // (via Cobertura) we get `java.lang.AbstractMethodError` so... ignore that too } @@ -43,10 +43,10 @@ public abstract class DOMDeserializer extends FromStringDeserializer // [databind#2589] add two more settings just in case try { parserFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); - } catch (Throwable t) { } // as per previous one, nothing much to do + } catch (Exception t) { } // as per previous one, nothing much to do try { parserFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - } catch (Throwable t) { } // as per previous one, nothing much to do + } catch (Exception t) { } // as per previous one, nothing much to do DEFAULT_PARSER_FACTORY = parserFactory; } diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java index c183af22e0..29c8e1c6fd 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java @@ -21,7 +21,7 @@ public abstract class Java7Support try { Class cls = Class.forName("com.fasterxml.jackson.databind.ext.Java7SupportImpl"); impl = (Java7Support) ClassUtil.createInstance(cls, false); - } catch (Throwable t) { + } catch (Exception t) { // 09-Sep-2019, tatu: Used to log earlier, but with 2.10.0 let's not log // java.util.logging.Logger.getLogger(Java7Support.class.getName()) // .warning("Unable to load JDK7 annotations (@ConstructorProperties, @Transient): no Java7 annotation support added"); diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java index 20e9d5cf12..d636967909 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java @@ -8,6 +8,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.spi.FileSystemProvider; +import java.util.ServiceConfigurationError; import java.util.ServiceLoader; import com.fasterxml.jackson.core.JsonParser; @@ -77,12 +78,10 @@ public Path deserialize(JsonParser p, DeserializationContext ctxt) throws IOExce } } return (Path) ctxt.handleInstantiationProblem(handledType(), value, cause); - } catch (Throwable e) { + } catch (Exception | ServiceConfigurationError e) { e.addSuppressed(cause); return (Path) ctxt.handleInstantiationProblem(handledType(), value, e); } - } catch (Throwable e) { - return (Path) ctxt.handleInstantiationProblem(handledType(), value, e); } } } diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java b/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java index 1a0286fcae..5589fed161 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java @@ -54,7 +54,7 @@ public class OptionalHandlerFactory implements java.io.Serializable try { node = org.w3c.dom.Node.class; doc = org.w3c.dom.Document.class; - } catch (Throwable e) { + } catch (Exception e) { // not optimal but will do // 02-Nov-2020, Xakep_SDK: Remove java.logging module dependency // Logger.getLogger(OptionalHandlerFactory.class.getName()) @@ -73,7 +73,7 @@ public class OptionalHandlerFactory implements java.io.Serializable Java7Handlers x = null; try { x = Java7Handlers.instance(); - } catch (Throwable t) { } + } catch (Exception t) { } _jdk7Helper = x; } @@ -231,7 +231,7 @@ private Object instantiate(String className, JavaType valueType) { try { return instantiate(Class.forName(className), valueType); - } catch (Throwable e) { + } catch (Exception e) { throw new IllegalStateException("Failed to find class `" +className+"` for handling values of type "+ClassUtil.getTypeDescription(valueType) +", problem: ("+e.getClass().getName()+") "+e.getMessage()); @@ -242,7 +242,7 @@ private Object instantiate(Class handlerClass, JavaType valueType) { try { return ClassUtil.createInstance(handlerClass, false); - } catch (Throwable e) { + } catch (Exception e) { throw new IllegalStateException("Failed to create instance of `" +handlerClass.getName()+"` for handling values of type "+ClassUtil.getTypeDescription(valueType) +", problem: ("+e.getClass().getName()+") "+e.getMessage()); diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java index d13836794a..142dd72641 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java @@ -66,7 +66,7 @@ public class JacksonAnnotationIntrospector Java7Support x = null; try { x = Java7Support.instance(); - } catch (Throwable t) { } + } catch (Exception t) { } _java7Helper = x; } diff --git a/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java b/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java index f46280c7a8..945fcb79a8 100644 --- a/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java +++ b/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java @@ -1179,7 +1179,7 @@ public static boolean isJDKClass(Class rawType) { public static boolean isJDK17OrAbove() { try { return getJDKMajorVersion() >= 17; - } catch (Throwable t) { + } catch (Exception t) { System.err.println("Failed to determine JDK major version, assuming pre-JDK-17; problem: "+t); return false; } @@ -1300,10 +1300,10 @@ public static Method[] getClassMethods(Class cls) } try { return contextClass.getDeclaredMethods(); // Cross fingers - } catch (Throwable t) { + } catch (Exception t) { return _failGetClassMethods(cls, t); } - } catch (Throwable t) { + } catch (Exception t) { return _failGetClassMethods(cls, t); } } diff --git a/src/main/java/com/fasterxml/jackson/databind/util/StdDateFormat.java b/src/main/java/com/fasterxml/jackson/databind/util/StdDateFormat.java index 05d3168839..45391c2b37 100644 --- a/src/main/java/com/fasterxml/jackson/databind/util/StdDateFormat.java +++ b/src/main/java/com/fasterxml/jackson/databind/util/StdDateFormat.java @@ -58,7 +58,7 @@ public class StdDateFormat +"(\\.\\d+)?" // optional second fractions +"(Z|[+-]\\d\\d(?:[:]?\\d\\d)?)?" // optional timeoffset/Z ); - } catch (Throwable t) { + } catch (Exception t) { throw new RuntimeException(t); } PATTERN_ISO8601 = p; From 8197458f648c50fc8b7348f6a639b749478fae0f Mon Sep 17 00:00:00 2001 From: joohyukkim Date: Mon, 13 Mar 2023 23:48:30 +0900 Subject: [PATCH 2/6] Update Java7Support.java --- .../java/com/fasterxml/jackson/databind/ext/Java7Support.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java index 29c8e1c6fd..64741cf4fd 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java @@ -21,7 +21,7 @@ public abstract class Java7Support try { Class cls = Class.forName("com.fasterxml.jackson.databind.ext.Java7SupportImpl"); impl = (Java7Support) ClassUtil.createInstance(cls, false); - } catch (Exception t) { + } catch (ClassNotFoundException | LinkageError t) { // 09-Sep-2019, tatu: Used to log earlier, but with 2.10.0 let's not log // java.util.logging.Logger.getLogger(Java7Support.class.getName()) // .warning("Unable to load JDK7 annotations (@ConstructorProperties, @Transient): no Java7 annotation support added"); From 64efcb39e1ecb4e4a0d33ca34da76656e633f2a0 Mon Sep 17 00:00:00 2001 From: joohyukkim Date: Mon, 13 Mar 2023 23:49:03 +0900 Subject: [PATCH 3/6] Update Java7Support.java --- .../java/com/fasterxml/jackson/databind/ext/Java7Support.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java index 64741cf4fd..4bb9abe4a7 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java @@ -21,7 +21,7 @@ public abstract class Java7Support try { Class cls = Class.forName("com.fasterxml.jackson.databind.ext.Java7SupportImpl"); impl = (Java7Support) ClassUtil.createInstance(cls, false); - } catch (ClassNotFoundException | LinkageError t) { + } catch (Exception | LinkageError t) { // 09-Sep-2019, tatu: Used to log earlier, but with 2.10.0 let's not log // java.util.logging.Logger.getLogger(Java7Support.class.getName()) // .warning("Unable to load JDK7 annotations (@ConstructorProperties, @Transient): no Java7 annotation support added"); From 347f24b18b760c3d9bca81441aad6daf2c898803 Mon Sep 17 00:00:00 2001 From: joohyukkim Date: Mon, 13 Mar 2023 23:55:07 +0900 Subject: [PATCH 4/6] Update NioPathDeserializer.java --- .../com/fasterxml/jackson/databind/ext/NioPathDeserializer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java index d636967909..bc610fd7e0 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java @@ -82,6 +82,8 @@ public Path deserialize(JsonParser p, DeserializationContext ctxt) throws IOExce e.addSuppressed(cause); return (Path) ctxt.handleInstantiationProblem(handledType(), value, e); } + } catch (Exception e) { + return (Path) ctxt.handleInstantiationProblem(handledType(), value, e); } } } From ae4f3a76d96e83a02b6b343ca235b04a3925e49e Mon Sep 17 00:00:00 2001 From: joohyukkim Date: Tue, 14 Mar 2023 00:11:45 +0900 Subject: [PATCH 5/6] Update OptionalHandlerFactory.java --- .../fasterxml/jackson/databind/ext/OptionalHandlerFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java b/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java index 5589fed161..071a2c1d33 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java @@ -54,7 +54,7 @@ public class OptionalHandlerFactory implements java.io.Serializable try { node = org.w3c.dom.Node.class; doc = org.w3c.dom.Document.class; - } catch (Exception e) { + } catch (NoClassDefFoundError | Exception e) { // not optimal but will do // 02-Nov-2020, Xakep_SDK: Remove java.logging module dependency // Logger.getLogger(OptionalHandlerFactory.class.getName()) From d741ceb0b170940ec39cf6e9d0cbc2990e7a8ee2 Mon Sep 17 00:00:00 2001 From: joohyukkim Date: Tue, 14 Mar 2023 05:28:11 +0900 Subject: [PATCH 6/6] Apply review --- .../fasterxml/jackson/databind/ext/DOMDeserializer.java | 3 --- .../com/fasterxml/jackson/databind/ext/Java7Support.java | 2 +- .../jackson/databind/ext/NioPathDeserializer.java | 2 +- .../jackson/databind/ext/OptionalHandlerFactory.java | 8 ++++---- .../introspect/JacksonAnnotationIntrospector.java | 2 +- .../com/fasterxml/jackson/databind/util/ClassUtil.java | 2 +- 6 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java index cccf0fa622..085785266a 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java @@ -35,9 +35,6 @@ public abstract class DOMDeserializer extends FromStringDeserializer parserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); } catch(ParserConfigurationException pce) { // not much point to do anything; could log but... - } catch (Exception e) { - // 14-Jul-2016, tatu: Not sure how or why, but during code coverage runs - // (via Cobertura) we get `java.lang.AbstractMethodError` so... ignore that too } // [databind#2589] add two more settings just in case diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java index 4bb9abe4a7..c183af22e0 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/Java7Support.java @@ -21,7 +21,7 @@ public abstract class Java7Support try { Class cls = Class.forName("com.fasterxml.jackson.databind.ext.Java7SupportImpl"); impl = (Java7Support) ClassUtil.createInstance(cls, false); - } catch (Exception | LinkageError t) { + } catch (Throwable t) { // 09-Sep-2019, tatu: Used to log earlier, but with 2.10.0 let's not log // java.util.logging.Logger.getLogger(Java7Support.class.getName()) // .warning("Unable to load JDK7 annotations (@ConstructorProperties, @Transient): no Java7 annotation support added"); diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java index bc610fd7e0..e74dde8728 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java @@ -78,7 +78,7 @@ public Path deserialize(JsonParser p, DeserializationContext ctxt) throws IOExce } } return (Path) ctxt.handleInstantiationProblem(handledType(), value, cause); - } catch (Exception | ServiceConfigurationError e) { + } catch (ServiceConfigurationError e) { e.addSuppressed(cause); return (Path) ctxt.handleInstantiationProblem(handledType(), value, e); } diff --git a/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java b/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java index 071a2c1d33..1a0286fcae 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java @@ -54,7 +54,7 @@ public class OptionalHandlerFactory implements java.io.Serializable try { node = org.w3c.dom.Node.class; doc = org.w3c.dom.Document.class; - } catch (NoClassDefFoundError | Exception e) { + } catch (Throwable e) { // not optimal but will do // 02-Nov-2020, Xakep_SDK: Remove java.logging module dependency // Logger.getLogger(OptionalHandlerFactory.class.getName()) @@ -73,7 +73,7 @@ public class OptionalHandlerFactory implements java.io.Serializable Java7Handlers x = null; try { x = Java7Handlers.instance(); - } catch (Exception t) { } + } catch (Throwable t) { } _jdk7Helper = x; } @@ -231,7 +231,7 @@ private Object instantiate(String className, JavaType valueType) { try { return instantiate(Class.forName(className), valueType); - } catch (Exception e) { + } catch (Throwable e) { throw new IllegalStateException("Failed to find class `" +className+"` for handling values of type "+ClassUtil.getTypeDescription(valueType) +", problem: ("+e.getClass().getName()+") "+e.getMessage()); @@ -242,7 +242,7 @@ private Object instantiate(Class handlerClass, JavaType valueType) { try { return ClassUtil.createInstance(handlerClass, false); - } catch (Exception e) { + } catch (Throwable e) { throw new IllegalStateException("Failed to create instance of `" +handlerClass.getName()+"` for handling values of type "+ClassUtil.getTypeDescription(valueType) +", problem: ("+e.getClass().getName()+") "+e.getMessage()); diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java index 142dd72641..d13836794a 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java @@ -66,7 +66,7 @@ public class JacksonAnnotationIntrospector Java7Support x = null; try { x = Java7Support.instance(); - } catch (Exception t) { } + } catch (Throwable t) { } _java7Helper = x; } diff --git a/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java b/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java index 945fcb79a8..2bd86d13cb 100644 --- a/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java +++ b/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java @@ -1179,7 +1179,7 @@ public static boolean isJDKClass(Class rawType) { public static boolean isJDK17OrAbove() { try { return getJDKMajorVersion() >= 17; - } catch (Exception t) { + } catch (Throwable t) { System.err.println("Failed to determine JDK major version, assuming pre-JDK-17; problem: "+t); return false; }