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..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,18 +35,15 @@ 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) { - // 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 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/NioPathDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java index 20e9d5cf12..e74dde8728 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,11 +78,11 @@ public Path deserialize(JsonParser p, DeserializationContext ctxt) throws IOExce } } return (Path) ctxt.handleInstantiationProblem(handledType(), value, cause); - } catch (Throwable e) { + } catch (ServiceConfigurationError e) { e.addSuppressed(cause); return (Path) ctxt.handleInstantiationProblem(handledType(), value, e); } - } catch (Throwable e) { + } catch (Exception e) { return (Path) ctxt.handleInstantiationProblem(handledType(), value, e); } } 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..2bd86d13cb 100644 --- a/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java +++ b/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java @@ -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;