From 10e96dbc1a41b0e6c7d754283c35dd1c16acf627 Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 18 Mar 2013 20:01:44 +1100 Subject: [PATCH] Prevent NPE in CraftSign This commit prevents the constructor of CraftSign throwing an NPE when it cannot get the sign tile entity. Instead it will fallback to a 4 empty lined sign, and not try to do anything to those lines on .update(). --- src/main/java/org/bukkit/craftbukkit/block/CraftSign.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java index 8e8a1c5..87af049 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java @@ -14,6 +14,12 @@ public class CraftSign extends CraftBlockState implements Sign { CraftWorld world = (CraftWorld) block.getWorld(); sign = (TileEntitySign) world.getTileEntityAt(getX(), getY(), getZ()); + // Spigot start + if (sign == null) { + lines = new String[]{"", "", "", ""}; + return; + } + // Spigot end lines = new String[sign.lines.length]; System.arraycopy(sign.lines, 0, lines, 0, lines.length); } @@ -34,7 +40,7 @@ public class CraftSign extends CraftBlockState implements Sign { public boolean update(boolean force) { boolean result = super.update(force); - if (result) { + if (result && sign != null) { // Spigot, add null check for(int i = 0; i < 4; i++) { if(lines[i] != null) { sign.lines[i] = lines[i]; -- 1.8.1-rc2