From d97eef0c104c5fd00bceca8340ce103158f25b31 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Mon, 4 Jun 2018 01:17:51 -0600 Subject: [PATCH] runelite-client: Don't fail on invalid config values. --- .../config/ConfigInvocationHandler.java | 24 +++++++++++-------- .../runelite/client/config/ConfigManager.java | 9 ++++++- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java index 70bf800b34..2895fc31fb 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java @@ -78,16 +78,20 @@ class ConfigInvocationHandler implements InvocationHandler // Convert value to return type Class returnType = method.getReturnType(); - Object objectValue = ConfigManager.stringToObject(value, returnType); - - // objectValue automatically gets unboxed -// if (!objectValue.getClass().equals(returnType)) -// { -// log.warn("Unable to convert return type for configuration item {}.{}: {}", group.keyName(), item.keyName(), returnType); -// return null; -// } - - return objectValue; + + try + { + return ConfigManager.stringToObject(value, returnType); + } + catch (Exception e) + { + log.warn("Unable to unmarshal {}.{} ", group.keyName(), item.keyName(), e); + if (method.isDefault()) + { + return callDefaultMethod(proxy, method, args); + } + return null; + } } else { diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index ce731320a4..5501345dc3 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -254,7 +254,14 @@ public class ConfigManager String value = getConfiguration(groupName, key); if (!Strings.isNullOrEmpty(value)) { - return (T) stringToObject(value, clazz); + try + { + return (T) stringToObject(value, clazz); + } + catch (Exception e) + { + log.warn("Unable to unmarshal {}.{} ", groupName, key, e); + } } return null; }