From 04c198a3d0c4729fe25bc015291292c495006cf0 Mon Sep 17 00:00:00 2001 From: tint0 Date: Wed, 30 Jan 2019 10:54:14 +0700 Subject: [PATCH] getDeclaredField raises exception instead of returning null when field isn't found (cherry picked from commit 348d873) --- .../ysoserial/payloads/util/Reflections.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/ysoserial/payloads/util/Reflections.java b/src/main/java/ysoserial/payloads/util/Reflections.java index c6b3ae3..276209d 100644 --- a/src/main/java/ysoserial/payloads/util/Reflections.java +++ b/src/main/java/ysoserial/payloads/util/Reflections.java @@ -9,12 +9,16 @@ import sun.reflect.ReflectionFactory; @SuppressWarnings ( "restriction" ) public class Reflections { - public static Field getField(final Class clazz, final String fieldName) throws Exception { - Field field = clazz.getDeclaredField(fieldName); - if (field != null) - field.setAccessible(true); - else if (clazz.getSuperclass() != null) - field = getField(clazz.getSuperclass(), fieldName); + public static Field getField(final Class clazz, final String fieldName) { + Field field = null; + try { + field = clazz.getDeclaredField(fieldName); + field.setAccessible(true); + } + catch (NoSuchFieldException ex) { + if (clazz.getSuperclass() != null) + field = getField(clazz.getSuperclass(), fieldName); + } return field; }