13
0
geforkt von Mirrors/Paper

[Bleeding] Skip InvocationTargetException. Addresses BUKKIT-774

By: Wesley Wolfe <weswolf@aol.com>
Dieser Commit ist enthalten in:
Bukkit/Spigot 2012-02-16 18:14:39 -06:00
Ursprung cfccd9341c
Commit 91c8bbacc7
2 geänderte Dateien mit 14 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -1,6 +1,7 @@
package org.bukkit.configuration.serialization; package org.bukkit.configuration.serialization;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.HashMap; import java.util.HashMap;
@ -68,7 +69,10 @@ public class ConfigurationSerialization {
return result; return result;
} }
} catch (Throwable ex) { } 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; return null;
@ -78,7 +82,10 @@ public class ConfigurationSerialization {
try { try {
return ctor.newInstance(args); return ctor.newInstance(args);
} catch (Throwable ex) { } 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; return null;

Datei anzeigen

@ -5,6 +5,7 @@ import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
@ -143,6 +144,8 @@ public class JavaPluginLoader implements PluginLoader {
result = constructor.newInstance(); result = constructor.newInstance();
result.initialize(this, server, description, dataFolder, file, loader); result.initialize(this, server, description, dataFolder, file, loader);
} catch (InvocationTargetException ex) {
throw new InvalidPluginException(ex.getCause());
} catch (Throwable ex) { } catch (Throwable ex) {
throw new InvalidPluginException(ex); throw new InvalidPluginException(ex);
} }
@ -298,6 +301,8 @@ public class JavaPluginLoader implements PluginLoader {
return; return;
} }
method.invoke(listener, event); method.invoke(listener, event);
} catch (InvocationTargetException ex) {
throw new EventException(ex.getCause());
} catch (Throwable t) { } catch (Throwable t) {
throw new EventException(t); throw new EventException(t);
} }