Handle the possibility that getSuperclass() returns NULL.

Thanks to libraryaddict for discovering this bug.
This commit is contained in:
Kristian S. Stangeland 2014-04-10 20:24:24 +02:00
parent 4dea26b847
commit c84a5d7fa2
3 changed files with 5 additions and 4 deletions

View File

@ -339,8 +339,9 @@ class CommandPacket extends CommandBase {
Class<?> clazz = packet.getClass();
// Get the first Minecraft super class
while ((!MinecraftReflection.isMinecraftClass(clazz) ||
Factory.class.isAssignableFrom(clazz)) && clazz != Object.class) {
while (clazz != null && clazz != Object.class &&
(!MinecraftReflection.isMinecraftClass(clazz) ||
Factory.class.isAssignableFrom(clazz))) {
clazz = clazz.getSuperclass();
}

View File

@ -119,7 +119,7 @@ public class ObjectWriter {
// Copy private fields underneath
Class<?> superclass = commonType.getSuperclass();
if (!superclass.equals(Object.class)) {
if (superclass != null && !superclass.equals(Object.class)) {
copyToInternal(source, destination, superclass, false);
}

View File

@ -210,7 +210,7 @@ public class PrettyPrinter {
ObjectPrinter printer) throws IllegalAccessException {
// See if we're supposed to skip this class
if (current == Object.class || (stop != null && current.equals(stop))) {
if (current == null || current == Object.class || (stop != null && current.equals(stop))) {
return;
}