Skip to content

Commit a4d537f

Browse files
authored
Consider catching Exception instead of Throwable (#3826)
1 parent 13a1405 commit a4d537f

File tree

5 files changed

+21
-23
lines changed

5 files changed

+21
-23
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/std/StdValueInstantiator.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ public Object createFromString(DeserializationContext ctxt, String value) throws
341341
if (_fromStringCreator != null) {
342342
try {
343343
return _fromStringCreator.call1(value);
344-
} catch (Throwable t) {
344+
} catch (Exception t) {
345345
return ctxt.handleInstantiationProblem(_fromStringCreator.getDeclaringClass(),
346346
value, rewrapCtorProblem(ctxt, t));
347347
}
@@ -357,7 +357,7 @@ public Object createFromInt(DeserializationContext ctxt, int value) throws IOExc
357357
Object arg = Integer.valueOf(value);
358358
try {
359359
return _fromIntCreator.call1(arg);
360-
} catch (Throwable t0) {
360+
} catch (Exception t0) {
361361
return ctxt.handleInstantiationProblem(_fromIntCreator.getDeclaringClass(),
362362
arg, rewrapCtorProblem(ctxt, t0));
363363
}
@@ -367,7 +367,7 @@ public Object createFromInt(DeserializationContext ctxt, int value) throws IOExc
367367
Object arg = Long.valueOf(value);
368368
try {
369369
return _fromLongCreator.call1(arg);
370-
} catch (Throwable t0) {
370+
} catch (Exception t0) {
371371
return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(),
372372
arg, rewrapCtorProblem(ctxt, t0));
373373
}
@@ -377,7 +377,7 @@ public Object createFromInt(DeserializationContext ctxt, int value) throws IOExc
377377
Object arg = BigInteger.valueOf(value);
378378
try {
379379
return _fromBigIntegerCreator.call1(arg);
380-
} catch (Throwable t0) {
380+
} catch (Exception t0) {
381381
return ctxt.handleInstantiationProblem(_fromBigIntegerCreator.getDeclaringClass(),
382382
arg, rewrapCtorProblem(ctxt, t0)
383383
);
@@ -394,7 +394,7 @@ public Object createFromLong(DeserializationContext ctxt, long value) throws IOE
394394
Long arg = Long.valueOf(value);
395395
try {
396396
return _fromLongCreator.call1(arg);
397-
} catch (Throwable t0) {
397+
} catch (Exception t0) {
398398
return ctxt.handleInstantiationProblem(_fromLongCreator.getDeclaringClass(),
399399
arg, rewrapCtorProblem(ctxt, t0)
400400
);
@@ -405,7 +405,7 @@ arg, rewrapCtorProblem(ctxt, t0)
405405
BigInteger arg = BigInteger.valueOf(value);
406406
try {
407407
return _fromBigIntegerCreator.call1(arg);
408-
} catch (Throwable t0) {
408+
} catch (Exception t0) {
409409
return ctxt.handleInstantiationProblem(_fromBigIntegerCreator.getDeclaringClass(),
410410
arg, rewrapCtorProblem(ctxt, t0)
411411
);
@@ -421,7 +421,7 @@ public Object createFromBigInteger(DeserializationContext ctxt, BigInteger value
421421
if (_fromBigIntegerCreator != null) {
422422
try {
423423
return _fromBigIntegerCreator.call1(value);
424-
} catch (Throwable t) {
424+
} catch (Exception t) {
425425
return ctxt.handleInstantiationProblem(_fromBigIntegerCreator.getDeclaringClass(),
426426
value, rewrapCtorProblem(ctxt, t)
427427
);
@@ -438,7 +438,7 @@ public Object createFromDouble(DeserializationContext ctxt, double value) throws
438438
Double arg = Double.valueOf(value);
439439
try {
440440
return _fromDoubleCreator.call1(arg);
441-
} catch (Throwable t0) {
441+
} catch (Exception t0) {
442442
return ctxt.handleInstantiationProblem(_fromDoubleCreator.getDeclaringClass(),
443443
arg, rewrapCtorProblem(ctxt, t0));
444444
}
@@ -448,7 +448,7 @@ public Object createFromDouble(DeserializationContext ctxt, double value) throws
448448
BigDecimal arg = BigDecimal.valueOf(value);
449449
try {
450450
return _fromBigDecimalCreator.call1(arg);
451-
} catch (Throwable t0) {
451+
} catch (Exception t0) {
452452
return ctxt.handleInstantiationProblem(_fromBigDecimalCreator.getDeclaringClass(),
453453
arg, rewrapCtorProblem(ctxt, t0));
454454
}
@@ -463,7 +463,7 @@ public Object createFromBigDecimal(DeserializationContext ctxt, BigDecimal value
463463
if (_fromBigDecimalCreator != null) {
464464
try {
465465
return _fromBigDecimalCreator.call1(value);
466-
} catch (Throwable t) {
466+
} catch (Exception t) {
467467
return ctxt.handleInstantiationProblem(_fromBigDecimalCreator.getDeclaringClass(),
468468
value, rewrapCtorProblem(ctxt, t)
469469
);
@@ -479,7 +479,7 @@ value, rewrapCtorProblem(ctxt, t)
479479
if (dbl != null) {
480480
try {
481481
return _fromDoubleCreator.call1(dbl);
482-
} catch (Throwable t0) {
482+
} catch (Exception t0) {
483483
return ctxt.handleInstantiationProblem(_fromDoubleCreator.getDeclaringClass(),
484484
dbl, rewrapCtorProblem(ctxt, t0));
485485
}
@@ -507,7 +507,7 @@ public Object createFromBoolean(DeserializationContext ctxt, boolean value) thro
507507
final Boolean arg = Boolean.valueOf(value);
508508
try {
509509
return _fromBooleanCreator.call1(arg);
510-
} catch (Throwable t0) {
510+
} catch (Exception t0) {
511511
return ctxt.handleInstantiationProblem(_fromBooleanCreator.getDeclaringClass(),
512512
arg, rewrapCtorProblem(ctxt, t0));
513513
}
@@ -654,7 +654,7 @@ private Object _createUsingDelegate(AnnotatedWithParams delegateCreator,
654654
}
655655
// and then try calling with full set of arguments
656656
return delegateCreator.call(args);
657-
} catch (Throwable t) {
657+
} catch (Exception t) {
658658
throw rewrapCtorProblem(ctxt, t);
659659
}
660660
}

src/main/java/com/fasterxml/jackson/databind/ext/DOMDeserializer.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,15 @@ public abstract class DOMDeserializer<T> extends FromStringDeserializer<T>
3535
parserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
3636
} catch(ParserConfigurationException pce) {
3737
// not much point to do anything; could log but...
38-
} catch (Error e) {
39-
// 14-Jul-2016, tatu: Not sure how or why, but during code coverage runs
40-
// (via Cobertura) we get `java.lang.AbstractMethodError` so... ignore that too
4138
}
4239

4340
// [databind#2589] add two more settings just in case
4441
try {
4542
parserFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
46-
} catch (Throwable t) { } // as per previous one, nothing much to do
43+
} catch (Exception t) { } // as per previous one, nothing much to do
4744
try {
4845
parserFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
49-
} catch (Throwable t) { } // as per previous one, nothing much to do
46+
} catch (Exception t) { } // as per previous one, nothing much to do
5047
DEFAULT_PARSER_FACTORY = parserFactory;
5148
}
5249

src/main/java/com/fasterxml/jackson/databind/ext/NioPathDeserializer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.nio.file.Path;
99
import java.nio.file.Paths;
1010
import java.nio.file.spi.FileSystemProvider;
11+
import java.util.ServiceConfigurationError;
1112
import java.util.ServiceLoader;
1213

1314
import com.fasterxml.jackson.core.JsonParser;
@@ -77,11 +78,11 @@ public Path deserialize(JsonParser p, DeserializationContext ctxt) throws IOExce
7778
}
7879
}
7980
return (Path) ctxt.handleInstantiationProblem(handledType(), value, cause);
80-
} catch (Throwable e) {
81+
} catch (ServiceConfigurationError e) {
8182
e.addSuppressed(cause);
8283
return (Path) ctxt.handleInstantiationProblem(handledType(), value, e);
8384
}
84-
} catch (Throwable e) {
85+
} catch (Exception e) {
8586
return (Path) ctxt.handleInstantiationProblem(handledType(), value, e);
8687
}
8788
}

src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,10 +1300,10 @@ public static Method[] getClassMethods(Class<?> cls)
13001300
}
13011301
try {
13021302
return contextClass.getDeclaredMethods(); // Cross fingers
1303-
} catch (Throwable t) {
1303+
} catch (Exception t) {
13041304
return _failGetClassMethods(cls, t);
13051305
}
1306-
} catch (Throwable t) {
1306+
} catch (Exception t) {
13071307
return _failGetClassMethods(cls, t);
13081308
}
13091309
}

src/main/java/com/fasterxml/jackson/databind/util/StdDateFormat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public class StdDateFormat
5858
+"(\\.\\d+)?" // optional second fractions
5959
+"(Z|[+-]\\d\\d(?:[:]?\\d\\d)?)?" // optional timeoffset/Z
6060
);
61-
} catch (Throwable t) {
61+
} catch (Exception t) {
6262
throw new RuntimeException(t);
6363
}
6464
PATTERN_ISO8601 = p;

0 commit comments

Comments
 (0)