Hello,
I am receiving a very inconsistent error when registering messages. I can run my app fine three times in a row, then the fourth it will fail. Or sometimes it will fail on the first couple runs then start working consistently. The error is very random as to when it shows up.
This is what it prints when it works correctly:
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-19 = com.jme3.math.Vector3f, serializer=com.jme3.network.serializing.serializers.Vector3Serializer]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-41 = com.jme3.network.serializing.serializers.FieldSerializer, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-43 = [I, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-46 = [L<censored>.assets.AssetData;, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-45 = <censored>.network.message.JmeSyncAssetMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-47 = <censored>.network.message.JmeSyncWorldObjectMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-48 = <censored>.network.message.JmePlayerActionMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-50 = [Ljava.lang.String;, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-49 = <censored>.network.message.JmeServerCommandMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-52 = [F, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-51 = <censored>.iso.chunk.ChunkMeta, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-53 = <censored>.database.AssetDatabase, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-54 = <censored>.network.message.JmeUIMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-55 = <censored>.network.message.JmeAssetUploadResponseMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-57 = [B, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-56 = <censored>.network.message.JmeSyncChunkMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-58 = <censored>.network.message.JmeSyncNpcMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-59 = <censored>.assets.ModelData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-60 = <censored>.network.message.JmeServerLogMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-61 = <censored>.network.message.JmeSyncPlayerMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-62 = <censored>.network.message.JmeSyncPhysicsObjectMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-64 = [C, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-63 = <censored>.network.message.JmeAuthRequestMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-65 = <censored>.network.message.JmeServerStatusMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-66 = <censored>.assets.TextureData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-67 = <censored>.assets.GeometryData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-68 = <censored>.assets.TerrainMaterialData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-69 = <censored>.network.message.JmeAuthResponseMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-70 = <censored>.network.message.JmeAssetUploadRequestMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-71 = <censored>.network.message.JmeRequestChunkMessage, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-72 = <censored>.assets.MaterialData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-73 = <censored>.assets.ShaderData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-74 = <censored>.assets.TerrainTextureData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-75 = <censored>.assets.AssetData, serializer=null]
[2020-01-19 14:59:58] [INFO ] Registering:Registration[-77 = [Lcom.jme3.network.message.SerializerRegistrationsMessage$Registration;, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
This is what is prints when it throws the error. You will notice it does not list the registered messages for some reason:
java.lang.RuntimeException: Error deserializing object, class ID:-76
at com.jme3.network.base.protocol.SerializerMessageProtocol.toMessage(SerializerMessageProtocol.java:91)
at com.jme3.network.base.protocol.LazyMessageBuffer.pollMessage(LazyMessageBuffer.java:74)
at com.jme3.network.base.ConnectorAdapter.run(ConnectorAdapter.java:175)
Caused by: com.jme3.network.serializing.SerializerException: Class not found for buffer data.
at com.jme3.network.serializing.Serializer.readClassAndObject(Serializer.java:404)
at com.jme3.network.serializing.serializers.ArraySerializer.readArray(ArraySerializer.java:150)
at com.jme3.network.serializing.serializers.ArraySerializer.readObject(ArraySerializer.java:88)
at com.jme3.network.serializing.Serializer.readClassAndObject(Serializer.java:405)
at com.jme3.network.base.protocol.SerializerMessageProtocol.toMessage(SerializerMessageProtocol.java:89)
... 2 more
One run I also got this:
java.lang.ClassCastException: class <censored>.assets.TextureData cannot be cast to class com.jme3.network.Message (<censored>.assets.TextureData and com.jme3.network.Message are in unnamed module of loader 'app')
at com.jme3.network.base.protocol.SerializerMessageProtocol.toMessage(SerializerMessageProtocol.java:89)
at com.jme3.network.base.protocol.LazyMessageBuffer.pollMessage(LazyMessageBuffer.java:74)
at com.jme3.network.base.ConnectorAdapter.run(ConnectorAdapter.java:175)
but I have not been able to get it to print this again, but there were no changes to the code, the next run it showed the other error.
Note: I am running on the master branch, but I was not getting this error before. It started this morning as far as I can tell.
Any thoughts?