This simple test case produces a NPE with the master branch and in beta2. When I debug the class with Intellij it seems that savedCtors in FieldSerializer is null. But I can’t understand why because it should be initialized in this line:
private static Map<Class, Constructor> savedCtors = new HashMap<Class, Constructor>();
I’m very confused now.
import com.jme3.network.serializing.Serializer;
import com.jme3.network.serializing.serializers.FieldSerializer;
public class SerializerTest {
static {
Serializer.registerClass(Object.class, new FieldSerializer());
}
public static void main(String[] args) {}
}
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.jvpichowski.SerializerTest.<clinit>(SerializerTest.java:13)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
Caused by: java.lang.NullPointerException
at com.jme3.network.serializing.serializers.FieldSerializer.checkClass(FieldSerializer.java:62)
at com.jme3.network.serializing.serializers.FieldSerializer.initialize(FieldSerializer.java:85)
at com.jme3.network.serializing.Serializer.registerClassForId(Serializer.java:206)
at com.jme3.network.serializing.Serializer.registerClass(Serializer.java:304)
at com.jme3.network.serializing.Serializer.getSerializerRegistration(Serializer.java:361)
at com.jme3.network.serializing.Serializer.getSerializer(Serializer.java:316)
at com.jme3.network.serializing.Serializer.registerClass(Serializer.java:228)
at com.jme3.network.serializing.Serializer.registerClass(Serializer.java:152)
at com.jme3.network.serializing.Serializer.<clinit>(Serializer.java:138)
... 4 more
Does this test fail with your setup and do you guys have any ideas?