I'm working on a contribution to Kryonet, and before I started testing my changes, I wanted to make sure the current trunk worked as-is. The RMI unit test currently flames out in trunk (r123). The issue doesn't seem to be present in the most recent release (2.12, r118). Relevant output (generated from running the RMI test package as a JUnit Test in Eclipse):
com.esotericsoftware.kryo.KryoException: Class cannot be created (missing no-arg constructor): int
Serialization trace:
objectID (com.esotericsoftware.kryonet.rmi.ObjectSpace$InvokeMethodResult)
at com.esotericsoftware.kryo.Kryo.newInstantiator(Kryo.java:1022)
at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:1034)
at com.esotericsoftware.kryo.Serializer.create(Serializer.java:42)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:669)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:231)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:760)
at com.esotericsoftware.kryonet.KryoSerialization.read(KryoSerialization.java:57)
at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:137)
at com.esotericsoftware.kryonet.Client.update(Client.java:239)
at com.esotericsoftware.kryonet.Client.run(Client.java:317)
at java.lang.Thread.run(Thread.java:679)
Exception in thread "Server" com.esotericsoftware.kryo.KryoException: Class cannot be created (missing no-arg constructor): int
Serialization trace:
objectID (com.esotericsoftware.kryonet.rmi.ObjectSpace$InvokeMethodResult)
at com.esotericsoftware.kryo.Kryo.newInstantiator(Kryo.java:1022)
at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:1034)
at com.esotericsoftware.kryo.Serializer.create(Serializer.java:42)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:669)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:231)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:760)
at com.esotericsoftware.kryonet.KryoSerialization.read(KryoSerialization.java:57)
at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:137)
at com.esotericsoftware.kryonet.Server.update(Server.java:192)
at com.esotericsoftware.kryonet.Server.run(Server.java:350)
at java.lang.Thread.run(Thread.java:679)
Exception in thread "Thread-2" com.esotericsoftware.kryonet.rmi.TimeoutException: Response timed out: com.esotericsoftware.kryonet.rmi.RmiTest$TestObject.other
at com.esotericsoftware.kryonet.rmi.ObjectSpace$RemoteInvocationHandler.invoke(ObjectSpace.java:349)
at $Proxy0.other(Unknown Source)
at com.esotericsoftware.kryonet.rmi.RmiTest$3.run(RmiTest.java:78)
Exception in thread "Thread-1" com.esotericsoftware.kryonet.rmi.TimeoutException: Response timed out: com.esotericsoftware.kryonet.rmi.RmiTest$TestObject.other
at com.esotericsoftware.kryonet.rmi.ObjectSpace$RemoteInvocationHandler.invoke(ObjectSpace.java:349)
at $Proxy0.other(Unknown Source)
at com.esotericsoftware.kryonet.rmi.RmiTest$3.run(RmiTest.java:78)