summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWesley Wolfe <weswolf@aol.com>2012-09-06 22:11:17 -0500
committerWesley Wolfe <weswolf@aol.com>2012-09-06 22:11:17 -0500
commit4d5894e4cb29bfa4f9bb07edfb85f57363a8866e (patch)
tree9713cc1c47fb6092e6b7af10b3a951e715f1ad2f /src
parentc710ca827f6a58b9464a94945f0e3b54e83fabbd (diff)
downloadcraftbukkit-4d5894e4cb29bfa4f9bb07edfb85f57363a8866e.tar
craftbukkit-4d5894e4cb29bfa4f9bb07edfb85f57363a8866e.tar.gz
craftbukkit-4d5894e4cb29bfa4f9bb07edfb85f57363a8866e.tar.lz
craftbukkit-4d5894e4cb29bfa4f9bb07edfb85f57363a8866e.tar.xz
craftbukkit-4d5894e4cb29bfa4f9bb07edfb85f57363a8866e.zip
Fix crash from console-commands throwing exception. Fixes BUKKIT-2479
When 1.3.1 was released, a try-catch block was removed from the tick loop that called the method in NMS to handle commands. This restores a try-catch to prevent the console from crashing the server.
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java9
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftServer.java7
2 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index 6087692c..f11d2b27 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -106,7 +106,14 @@ public class NetServerHandler extends NetHandler {
this.h = false;
++this.f;
// this.minecraftServer.methodProfiler.a("packetflow"); // CraftBukkit - not in production code
- this.networkManager.b();
+ // CraftBukkit start
+ try {
+ this.networkManager.b();
+ } catch (Exception ex) {
+ logger.log(Level.WARNING, "Exception from " + this.player.name, ex);
+ this.disconnect(ex.getClass().getName());
+ }
+ // CraftBukkit end
// this.minecraftServer.methodProfiler.c("keepAlive"); // CraftBukkit - not in production code
if ((long) this.f - this.l > 20L) {
this.l = (long) this.f;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 500c4909..f11f7329 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -485,7 +485,12 @@ public final class CraftServer implements Server {
return true;
}
}
- return dispatchCommand(sender, serverCommand.command);
+ try {
+ return dispatchCommand(sender, serverCommand.command);
+ } catch (Exception ex) {
+ getLogger().log(Level.WARNING, "Unexpected exception while parsing console command \"" + serverCommand.command + '"', ex);
+ return false;
+ }
}
public boolean dispatchCommand(CommandSender sender, String commandLine) {