From c6e34e2c8018cc6305e306a41199093ba79f6092 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Thu, 7 May 2015 08:15:41 +0200 Subject: [PATCH] do not crash when configuration type is invalid --- .../decompiler/flash/configuration/Configuration.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java index 340a2a790..8aa15f3e5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java @@ -30,6 +30,7 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.lang.reflect.Field; import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; @@ -684,6 +685,12 @@ public class Configuration { Object value = null; if (config.containsKey(name)) { value = config.get(name); + + Class type = (Class) (((ParameterizedType) (field.getGenericType())).getActualTypeArguments()[0]); + if (value != null && !type.isAssignableFrom(value.getClass())) { + System.out.println("Configuration item has a wrong type: " + name + " expected: " + type.getSimpleName() + " actual: " + value.getClass().getSimpleName()); + value = null; + } } if (value != null) {