summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWesley Wolfe <weswolf@aol.com>2012-02-16 18:14:39 -0600
committerEvilSeph <evilseph@gmail.com>2012-02-18 23:54:57 -0500
commitdb57cff67cd6125fb8ad185fbb61dabbfc66cb58 (patch)
treef86f332ee47bc2ebf83ac79a829b61e4291c20af /src
parentd984f1293121f99a9a767531ec9de9028ad797e7 (diff)
downloadbukkit-db57cff67cd6125fb8ad185fbb61dabbfc66cb58.tar
bukkit-db57cff67cd6125fb8ad185fbb61dabbfc66cb58.tar.gz
bukkit-db57cff67cd6125fb8ad185fbb61dabbfc66cb58.tar.lz
bukkit-db57cff67cd6125fb8ad185fbb61dabbfc66cb58.tar.xz
bukkit-db57cff67cd6125fb8ad185fbb61dabbfc66cb58.zip
[Bleeding] Skip InvocationTargetException. Addresses BUKKIT-774
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/configuration/serialization/ConfigurationSerialization.java11
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java5
2 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/org/bukkit/configuration/serialization/ConfigurationSerialization.java b/src/main/java/org/bukkit/configuration/serialization/ConfigurationSerialization.java
index 3b2b67b9..6f630880 100644
--- a/src/main/java/org/bukkit/configuration/serialization/ConfigurationSerialization.java
+++ b/src/main/java/org/bukkit/configuration/serialization/ConfigurationSerialization.java
@@ -1,6 +1,7 @@
package org.bukkit.configuration.serialization;
import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.HashMap;
@@ -68,7 +69,10 @@ public class ConfigurationSerialization {
return result;
}
} catch (Throwable ex) {
- Logger.getLogger(ConfigurationSerialization.class.getName()).log(Level.SEVERE, "Could not call method '" + method.toString() + "' of " + clazz + " for deserialization", ex);
+ Logger.getLogger(ConfigurationSerialization.class.getName()).log(
+ Level.SEVERE,
+ "Could not call method '" + method.toString() + "' of " + clazz + " for deserialization",
+ ex instanceof InvocationTargetException ? ex.getCause() : ex);
}
return null;
@@ -78,7 +82,10 @@ public class ConfigurationSerialization {
try {
return ctor.newInstance(args);
} catch (Throwable ex) {
- Logger.getLogger(ConfigurationSerialization.class.getName()).log(Level.SEVERE, "Could not call constructor '" + ctor.toString() + "' of " + clazz + " for deserialization", ex);
+ Logger.getLogger(ConfigurationSerialization.class.getName()).log(
+ Level.SEVERE,
+ "Could not call constructor '" + ctor.toString() + "' of " + clazz + " for deserialization",
+ ex instanceof InvocationTargetException ? ex.getCause() : ex);
}
return null;
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index b11439b7..b31457dd 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -5,6 +5,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
@@ -143,6 +144,8 @@ public class JavaPluginLoader implements PluginLoader {
result = constructor.newInstance();
result.initialize(this, server, description, dataFolder, file, loader);
+ } catch (InvocationTargetException ex) {
+ throw new InvalidPluginException(ex.getCause());
} catch (Throwable ex) {
throw new InvalidPluginException(ex);
}
@@ -298,6 +301,8 @@ public class JavaPluginLoader implements PluginLoader {
return;
}
method.invoke(listener, event);
+ } catch (InvocationTargetException ex) {
+ throw new EventException(ex.getCause());
} catch (Throwable t) {
throw new EventException(t);
}