SimEthereal Questions


#41

Continued due to character limit.

05:17:59,783 DEBUG [DefaultServer] Connection closed:NioEndpoint[3, java.nio.channels.SocketChannel[closed]].
05:17:59,783 DEBUG [DefaultServer] Connections size:0
05:17:59,783 DEBUG [DefaultServer] Endpoint mappings size:3
05:17:59,784 DEBUG [DefaultServer] Client closed:Connection[ id=2, reliable=NioEndpoint[3, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[3, /127.0.0.1:50327] ].
05:17:59,799 DEBUG [DefaultServer] Connection closed:UdpEndpoint[3, /127.0.0.1:50327].
05:17:59,799 DEBUG [DefaultServer] Connection closed:NioEndpoint[3, java.nio.channels.SocketChannel[closed]].
05:17:59,800 DEBUG [AccountHostedService] stopHostingOnConnection(Connection[ id=2, reliable=NioEndpoint[3, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[3, /127.0.0.1:50327] ])
05:17:59,800 DEBUG [DefaultServer] Connections size:0
05:17:59,800 DEBUG [AccountHostedService] publishing playerLoggedOff event for:Connection[ id=2, reliable=NioEndpoint[3, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[3, /127.0.0.1:50327] ]
05:17:59,800 DEBUG [DefaultServer] Endpoint mappings size:2
05:17:59,799 DEBUG [DefaultServer] Connection closed:NioEndpoint[3, java.nio.channels.SocketChannel[closed]].
05:17:59,800 DEBUG [DefaultServer] Connections size:0
05:17:59,800 DEBUG [GameSessionHostedService] onPlayerLoggedOff()
05:17:59,800 DEBUG [GameSessionHostedService] stopHostingOnConnection(Connection[ id=2, reliable=NioEndpoint[3, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[3, /127.0.0.1:50327] ])
05:17:59,800 DEBUG [DefaultServer] Endpoint mappings size:1
05:17:59,800 ERROR [KernelAdapter] Unhandled error, endpoint:NioEndpoint[3, java.nio.channels.SocketChannel[closed]], context:EndpointEvent[REMOVE, NioEndpoint[3, java.nio.channels.SocketChannel[closed]]]
java.lang.IllegalArgumentException: EntityId cannot be null.
at com.simsilica.es.base.DefaultEntityData.removeComponent(DefaultEntityData.java:185) ~[zay-es-1.2.1.jar:?]
at com.simsilica.es.base.DefaultEntityData.removeEntity(DefaultEntityData.java:126) ~[zay-es-1.2.1.jar:?]
at example.net.server.AccountHostedService$AccountSessionImpl.dispose(AccountHostedService.java:194) ~[main/:?]
at example.net.server.AccountHostedService.stopHostingOnConnection(AccountHostedService.java:135) ~[main/:?]
at com.jme3.network.service.AbstractHostedConnectionService.connectionRemoved(AbstractHostedConnectionService.java:146) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager.removeConnection(HostedServiceManager.java:124) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager$ConnectionObserver.connectionRemoved(HostedServiceManager.java:137) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.fireConnectionRemoved(DefaultServer.java:356) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer$Connection.closeConnection(DefaultServer.java:616) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.connectionClosed(DefaultServer.java:513) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.connectionClosed(KernelAdapter.java:144) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:249) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.flushEvents(KernelAdapter.java:258) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:271) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
05:17:59,804 DEBUG [DefaultServer] Connections size:0
05:17:59,804 DEBUG [DefaultServer] Endpoint mappings size:0
05:18:12,496 DEBUG [DefaultServer] Registering client for endpoint, pass 1:NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]].
05:18:12,497 DEBUG [DefaultServer] Setting up channel:0
05:18:12,497 TRACE [DefaultServer] send(ChannelInfoMessage[779222927109022, [[I@3d86af86]])
05:18:12,502 DEBUG [DefaultServer] Refining client registration for endpoint:UdpEndpoint[4, /127.0.0.1:50330].
05:18:12,502 DEBUG [DefaultServer] Setting up channel:1
05:18:12,505 DEBUG [DefaultServer] Refining client registration for endpoint:NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4272 remote=/127.0.0.1:50752]].
05:18:12,505 DEBUG [DefaultServer] Setting up channel:2
05:18:12,508 DEBUG [DefaultServer] Refining client registration for endpoint:NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4273 remote=/127.0.0.1:50753]].
05:18:12,508 DEBUG [DefaultServer] Setting up channel:3
05:18:12,508 DEBUG [DefaultServer] Client registered:Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ].
05:18:12,508 TRACE [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=3, gameName=null, version=0])
05:18:12,508 TRACE [DefaultServer] send(com.jme3.network.message.SerializerRegistrationsMessage@32a92243)
05:18:12,509 DEBUG [AccountHostedService] startHostingOnConnection(Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ])
05:18:12,509 TRACE [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1])
05:18:12,510 TRACE [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4])
05:18:12,510 TRACE [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=-1, gameName=null, version=0])
05:18:12,550 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:18:12,550 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:18:12,550 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:18:12,551 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:18:12,551 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:18:12,551 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:18:12,557 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:GetEntitySetMessage[0, null, [class example.es.BodyPosition]]
05:18:12,591 TRACE [DefaultServer] Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50751]], fast=UdpEndpoint[4, /127.0.0.1:50330] ] received:RpcCallMessage[#0, channel=-2, sync, objId=1, procId=0, args.length=0]
05:18:12,592 TRACE [DefaultServer] send(RpcResponseMessage[#0, result=This a game server.
There are many like it
but this one is mine.])
05:18:13,905 DEBUG [DefaultServer] Connection closed:NioEndpoint[4, java.nio.channels.SocketChannel[closed]].
05:18:13,905 DEBUG [DefaultServer] Connections size:0
05:18:13,905 DEBUG [DefaultServer] Endpoint mappings size:3
05:18:13,906 DEBUG [DefaultServer] Connection closed:NioEndpoint[4, java.nio.channels.SocketChannel[closed]].
05:18:13,906 DEBUG [DefaultServer] Client closed:Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[4, /127.0.0.1:50330] ].
05:18:13,906 DEBUG [DefaultServer] Connections size:0
05:18:13,908 DEBUG [DefaultServer] Connection closed:NioEndpoint[4, java.nio.channels.SocketChannel[closed]].
05:18:13,910 DEBUG [DefaultServer] Endpoint mappings size:2
05:18:13,910 DEBUG [DefaultServer] Connections size:0
05:18:13,910 DEBUG [DefaultServer] Endpoint mappings size:1
05:18:13,911 DEBUG [DefaultServer] Connection closed:UdpEndpoint[4, /127.0.0.1:50330].
05:18:13,907 DEBUG [AccountHostedService] stopHostingOnConnection(Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[4, /127.0.0.1:50330] ])
05:18:13,911 DEBUG [DefaultServer] Connections size:0
05:18:13,911 DEBUG [AccountHostedService] publishing playerLoggedOff event for:Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[4, /127.0.0.1:50330] ]
05:18:13,911 DEBUG [GameSessionHostedService] onPlayerLoggedOff()
05:18:13,911 DEBUG [DefaultServer] Endpoint mappings size:0
05:18:13,911 DEBUG [GameSessionHostedService] stopHostingOnConnection(Connection[ id=3, reliable=NioEndpoint[4, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[4, /127.0.0.1:50330] ])
05:18:13,911 ERROR [KernelAdapter] Unhandled error, endpoint:NioEndpoint[4, java.nio.channels.SocketChannel[closed]], context:EndpointEvent[REMOVE, NioEndpoint[4, java.nio.channels.SocketChannel[closed]]]
java.lang.IllegalArgumentException: EntityId cannot be null.
at com.simsilica.es.base.DefaultEntityData.removeComponent(DefaultEntityData.java:185) ~[zay-es-1.2.1.jar:?]
at com.simsilica.es.base.DefaultEntityData.removeEntity(DefaultEntityData.java:126) ~[zay-es-1.2.1.jar:?]
at example.net.server.AccountHostedService$AccountSessionImpl.dispose(AccountHostedService.java:194) ~[main/:?]
at example.net.server.AccountHostedService.stopHostingOnConnection(AccountHostedService.java:135) ~[main/:?]
at com.jme3.network.service.AbstractHostedConnectionService.connectionRemoved(AbstractHostedConnectionService.java:146) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager.removeConnection(HostedServiceManager.java:124) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager$ConnectionObserver.connectionRemoved(HostedServiceManager.java:137) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.fireConnectionRemoved(DefaultServer.java:356) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer$Connection.closeConnection(DefaultServer.java:616) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.connectionClosed(DefaultServer.java:513) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.connectionClosed(KernelAdapter.java:144) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:249) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.flushEvents(KernelAdapter.java:258) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:271) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
05:18:25,737 DEBUG [DefaultServer] Registering client for endpoint, pass 1:NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]].
05:18:25,737 DEBUG [DefaultServer] Setting up channel:0
05:18:25,737 TRACE [DefaultServer] send(ChannelInfoMessage[779236174094945, [[I@7ed3b9bc]])
05:18:25,747 DEBUG [DefaultServer] Refining client registration for endpoint:NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4272 remote=/127.0.0.1:50760]].
05:18:25,747 DEBUG [DefaultServer] Setting up channel:2
05:18:25,749 DEBUG [DefaultServer] Refining client registration for endpoint:NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4273 remote=/127.0.0.1:50761]].

05:18:25,750 DEBUG [DefaultServer] Setting up channel:3
05:18:25,750 DEBUG [DefaultServer] Refining client registration for endpoint:UdpEndpoint[5, /127.0.0.1:50333].
05:18:25,750 DEBUG [DefaultServer] Setting up channel:1
05:18:25,750 DEBUG [DefaultServer] Client registered:Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ].
05:18:25,751 TRACE [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=4, gameName=null, version=0])
05:18:25,751 TRACE [DefaultServer] send(com.jme3.network.message.SerializerRegistrationsMessage@32a92243)
05:18:25,751 DEBUG [AccountHostedService] startHostingOnConnection(Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ])
05:18:25,752 TRACE [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1])
05:18:25,752 TRACE [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4])
05:18:25,752 TRACE [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=-1, gameName=null, version=0])
05:18:25,804 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:18:25,804 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:18:25,804 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:18:25,804 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:18:25,804 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:18:25,804 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:18:25,805 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:GetEntitySetMessage[0, null, [class example.es.BodyPosition]]
05:18:25,825 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:RpcCallMessage[#0, channel=-2, sync, objId=1, procId=0, args.length=0]
05:18:25,826 TRACE [DefaultServer] send(RpcResponseMessage[#0, result=This a game server.
There are many like it
but this one is mine.])
05:18:27,111 TRACE [DefaultServer] Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50759]], fast=UdpEndpoint[5, /127.0.0.1:50333] ] received:ReleaseEntitySetMessage[0]
05:18:27,112 DEBUG [DefaultServer] Connection closed:NioEndpoint[5, java.nio.channels.SocketChannel[closed]].
05:18:27,114 DEBUG [DefaultServer] Connection closed:NioEndpoint[5, java.nio.channels.SocketChannel[closed]].
05:18:27,115 DEBUG [DefaultServer] Connections size:0
05:18:27,115 DEBUG [DefaultServer] Endpoint mappings size:3
05:18:27,115 DEBUG [DefaultServer] Client closed:Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[5, /127.0.0.1:50333] ].
05:18:27,116 DEBUG [AccountHostedService] stopHostingOnConnection(Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[5, /127.0.0.1:50333] ])
05:18:27,117 DEBUG [AccountHostedService] publishing playerLoggedOff event for:Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[5, /127.0.0.1:50333] ]
05:18:27,117 DEBUG [DefaultServer] Connection closed:UdpEndpoint[5, /127.0.0.1:50333].
05:18:27,117 DEBUG [GameSessionHostedService] onPlayerLoggedOff()
05:18:27,117 DEBUG [GameSessionHostedService] stopHostingOnConnection(Connection[ id=4, reliable=NioEndpoint[5, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[5, /127.0.0.1:50333] ])
05:18:27,117 ERROR [KernelAdapter] Unhandled error, endpoint:NioEndpoint[5, java.nio.channels.SocketChannel[closed]], context:EndpointEvent[REMOVE, NioEndpoint[5, java.nio.channels.SocketChannel[closed]]]
java.lang.IllegalArgumentException: EntityId cannot be null.
at com.simsilica.es.base.DefaultEntityData.removeComponent(DefaultEntityData.java:185) ~[zay-es-1.2.1.jar:?]
at com.simsilica.es.base.DefaultEntityData.removeEntity(DefaultEntityData.java:126) ~[zay-es-1.2.1.jar:?]
at example.net.server.AccountHostedService$AccountSessionImpl.dispose(AccountHostedService.java:194) ~[main/:?]
at example.net.server.AccountHostedService.stopHostingOnConnection(AccountHostedService.java:135) ~[main/:?]
at com.jme3.network.service.AbstractHostedConnectionService.connectionRemoved(AbstractHostedConnectionService.java:146) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager.removeConnection(HostedServiceManager.java:124) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager$ConnectionObserver.connectionRemoved(HostedServiceManager.java:137) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.fireConnectionRemoved(DefaultServer.java:356) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer$Connection.closeConnection(DefaultServer.java:616) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.connectionClosed(DefaultServer.java:513) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.connectionClosed(KernelAdapter.java:144) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:249) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.flushEvents(KernelAdapter.java:258) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:271) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
05:18:27,117 DEBUG [DefaultServer] Connections size:0
05:18:27,117 DEBUG [DefaultServer] Endpoint mappings size:2
05:18:27,119 DEBUG [DefaultServer] Connections size:0
05:18:27,119 DEBUG [DefaultServer] Connection closed:NioEndpoint[5, java.nio.channels.SocketChannel[closed]].
05:18:27,119 DEBUG [DefaultServer] Endpoint mappings size:1
05:18:27,119 DEBUG [DefaultServer] Connections size:0
05:18:27,120 DEBUG [DefaultServer] Endpoint mappings size:0
05:18:53,358 DEBUG [DefaultServer] Registering client for endpoint, pass 1:NioEndpoint[6, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50776]].
05:18:53,358 DEBUG [DefaultServer] Setting up channel:0
05:18:53,358 TRACE [DefaultServer] send(ChannelInfoMessage[779263790869594, [[I@45653b6f]])
05:18:53,360 DEBUG [DefaultServer] Refining client registration for endpoint:UdpEndpoint[6, /127.0.0.1:52110].
05:18:53,360 DEBUG [DefaultServer] Setting up channel:1
05:18:53,369 DEBUG [DefaultServer] Refining client registration for endpoint:NioEndpoint[6, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4272 remote=/127.0.0.1:50777]].
05:18:53,369 DEBUG [DefaultServer] Setting up channel:2
05:18:53,376 DEBUG [DefaultServer] Refining client registration for endpoint:NioEndpoint[6, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4273 remote=/127.0.0.1:50778]].
05:18:53,376 DEBUG [DefaultServer] Setting up channel:3
05:18:53,377 DEBUG [DefaultServer] Client registered:Connection[ id=5, reliable=NioEndpoint[6, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50776]], fast=UdpEndpoint[6, /127.0.0.1:52110] ].
05:18:53,377 TRACE [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=5, gameName=null, version=0])
05:18:53,377 TRACE [DefaultServer] send(com.jme3.network.message.SerializerRegistrationsMessage@32a92243)
05:18:53,377 DEBUG [AccountHostedService] startHostingOnConnection(Connection[ id=5, reliable=NioEndpoint[6, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:50776]], fast=UdpEndpoint[6, /127.0.0.1:52110] ])
05:18:53,377 TRACE [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1])
05:18:53,378 TRACE [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4])
05:18:53,378 TRACE [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=-1, gameName=null, version=0])
05:18:57,624 DEBUG [DefaultServer] Connection closed:NioEndpoint[6, java.nio.channels.SocketChannel[closed]].
05:18:57,624 DEBUG [DefaultServer] Connection closed:NioEndpoint[6, java.nio.channels.SocketChannel[closed]].
05:18:57,624 DEBUG [DefaultServer] Connections size:0
05:18:57,625 DEBUG [DefaultServer] Endpoint mappings size:3
05:18:57,625 DEBUG [DefaultServer] Client closed:Connection[ id=5, reliable=NioEndpoint[6, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[6, /127.0.0.1:52110] ].
05:18:57,625 DEBUG [AccountHostedService] stopHostingOnConnection(Connection[ id=5, reliable=NioEndpoint[6, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[6, /127.0.0.1:52110] ])
05:18:57,625 DEBUG [DefaultServer] Connection closed:NioEndpoint[6, java.nio.channels.SocketChannel[closed]].
05:18:57,625 DEBUG [AccountHostedService] publishing playerLoggedOff event for:Connection[ id=5, reliable=NioEndpoint[6, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[6, /127.0.0.1:52110] ]
05:18:57,625 DEBUG [GameSessionHostedService] onPlayerLoggedOff()
05:18:57,625 DEBUG [GameSessionHostedService] stopHostingOnConnection(Connection[ id=5, reliable=NioEndpoint[6, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[6, /127.0.0.1:52110] ])
05:18:57,625 ERROR [KernelAdapter] Unhandled error, endpoint:NioEndpoint[6, java.nio.channels.SocketChannel[closed]], context:EndpointEvent[REMOVE, NioEndpoint[6, java.nio.channels.SocketChannel[closed]]]
java.lang.IllegalArgumentException: EntityId cannot be null.
at com.simsilica.es.base.DefaultEntityData.removeComponent(DefaultEntityData.java:185) ~[zay-es-1.2.1.jar:?]
at com.simsilica.es.base.DefaultEntityData.removeEntity(DefaultEntityData.java:126) ~[zay-es-1.2.1.jar:?]
at example.net.server.AccountHostedService$AccountSessionImpl.dispose(AccountHostedService.java:194) ~[main/:?]
at example.net.server.AccountHostedService.stopHostingOnConnection(AccountHostedService.java:135) ~[main/:?]
at com.jme3.network.service.AbstractHostedConnectionService.connectionRemoved(AbstractHostedConnectionService.java:146) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager.removeConnection(HostedServiceManager.java:124) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.service.HostedServiceManager$ConnectionObserver.connectionRemoved(HostedServiceManager.java:137) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.fireConnectionRemoved(DefaultServer.java:356) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer$Connection.closeConnection(DefaultServer.java:616) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.DefaultServer.connectionClosed(DefaultServer.java:513) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.connectionClosed(KernelAdapter.java:144) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:249) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.flushEvents(KernelAdapter.java:258) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:271) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
05:18:57,626 DEBUG [DefaultServer] Connections size:0
05:18:57,628 DEBUG [DefaultServer] Connection closed:UdpEndpoint[6, /127.0.0.1:52110].
05:18:57,629 DEBUG [DefaultServer] Endpoint mappings size:2
05:18:57,629 DEBUG [DefaultServer] Connections size:0
05:18:57,629 DEBUG [DefaultServer] Endpoint mappings size:1
05:18:57,631 DEBUG [DefaultServer] Connections size:0
05:18:57,632 DEBUG [DefaultServer] Endpoint mappings size:0
05:19:02,959 INFO [HostState] stopHosting()
05:19:02,960 INFO [GameServer] Stopping game server…Shutting down.
05:19:02,960 TRACE [GameSystemManager] stop()
05:19:02,960 TRACE [GameSystemManager] stopping:com.simsilica.sim.TaskDispatcher@7b337244
05:19:02,960 TRACE [GameSystemManager] stopping:example.sim.SimplePhysics@1da4bf39
05:19:02,960 TRACE [GameSystemManager] stopping:example.net.server.ZoneNetworkSystem@17b7528f
05:19:02,960 TRACE [GameSystemManager] stopping:com.simsilica.es.server.EntityUpdater@181f1b63
05:19:02,960 TRACE [GameSystemManager] stopping:example.sim.BodyPositionPublisher@785eeb76
05:19:02,960 TRACE [GameSystemManager] stopping:example.sim.BasicEnvironment@403bde33
05:19:02,960 TRACE [GameSystemManager] terminate()
05:19:02,961 TRACE [GameSystemManager] terminating:com.simsilica.sim.TaskDispatcher@7b337244
05:19:02,961 TRACE [GameSystemManager] terminating:example.sim.SimplePhysics@1da4bf39
05:19:02,961 TRACE [GameSystemManager] terminating:example.net.server.ZoneNetworkSystem@17b7528f
05:19:02,961 TRACE [GameSystemManager] terminating:com.simsilica.es.server.EntityUpdater@181f1b63
05:19:02,961 TRACE [GameSystemManager] terminating:example.sim.BodyPositionPublisher@785eeb76
05:19:02,961 TRACE [GameSystemManager] terminating:example.sim.BasicEnvironment@403bde33
05:19:02,961 INFO [StateCollector] Shuttong down state collector.
05:19:02,963 INFO [GameServer] Game server stopped.


#42

It really doesn’t make any sense. The Serializer message is always sent before anything else. At first I thought maybe one channel was passing another but it’s all on the same channel now.

P.S.: if it’s easier to post logs without splitting them then you might be able to create a problem report in github and attach things there in the future. or you can keep posting here if you don’t mind splitting log files.


#43

I spent a good bit of time staring at this problem in the debugger, I am honestly at a loss as to why its happening but my debugging skills are pretty newb. I don’t mind splitting logs, just let me know what you’d like me to try next.


#44

I’ve been looking into this some more… the very frustrating thing is that I cannot reproduce it. No matter what I do. I’ve even tried adding sleeps of 2 seconds into the processing at various places on the client and the server to try to expand whatever magic timing window must get hit.

It’s also unfortunate because to get any more detailed logging from SpiderMonkey, I’d have to modify JME code.

The only other thing I can think to try is to turn trace logging on for both DefaultClient and DefaulrServer and add the thread name to the log format.

Here is my own log4j2xml for reference:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <RollingFile name="RollingFile" fileName="application.log" ignoreExceptions="false"
                 filePattern="logs/$${date:yyyy-MM}/application-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout>
        <Pattern>%d{ABSOLUTE} %-5p (%t) [%c{1}] %m%n</Pattern>
      </PatternLayout>
      <OnStartupTriggeringPolicy />
    </RollingFile>

    <Console name="STDOUT" target="SYSTEM_OUT" ignoreExceptions="false">
      <PatternLayout pattern="%d{ABSOLUTE} %-5p (%t) [%c{1}] %m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="example" level="DEBUG"/>
    <Logger name="com.simsilica.sim" level="TRACE"/>
    <Logger name="com.jme3.network.message" level="TRACE"/>
    <Logger name="com.jme3.network.base.DefaultServer" level="TRACE" />
    <Logger name="com.jme3.network.base.DefaultClient" level="TRACE" />

    <!-- <Logger name="com.simsilica.lemur.input.InputMapper" level="TRACE"/> -->
    <!-- <Logger name="com.simsilica.lemur.CallMethodAction" level="TRACE"/> -->
    <Root level="INFO">
      <AppenderRef ref="RollingFile"/>
      <AppenderRef ref="STDOUT"/>
    </Root>
  </Loggers>
</Configuration>

So if you get a chance to run the test again someday… make a clean distZip start with fresh directories, etc… then run the test until you get failure. Then I’d like to see both the server log and the log of the failing client run.

I’ve tried on two different systems running two different versions of windows to get this failure… I can’t seem to reproduce it. On average, how many times do you have to run the client before you get a failure?


#45

On average I’d say I get the error every 4th time I open it. Sometimes I open it and get it right away, sometimes it takes 10 times. Sometimes when I click ok on the serializer error, it will let me join if i click connect again. Sometimes it won’t, no matter how many times i click connect.

I’m just downloading a fresh clone of everything right now, I will test this in a few minutes. I’ve gotten this message with every version of sim-eth I’ve used starting from the basic one I downloaded shortly after you first posted it. I just assumed it was something I had done wrong originally.


#46
05:45:48,977 INFO  (main) [JmeSystem] Running on jMonkeyEngine 3.1-beta1
 * Branch: HEAD
 * Git Hash: 310f4db
 * Build Date: 2016-04-25
05:45:49,254 INFO  (jME3 Main) [LwjglContext] LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: aticfx64
 * Driver Version: 8.17.10.1404
 * Scaling Factor: 1
05:45:49,312 INFO  (jME3 Main) [GLRenderer] OpenGL Renderer Information
 * Vendor: ATI Technologies Inc.
 * Renderer: ATI FirePro V (FireGL V) Graphics Adapter
 * OpenGL Version: 4.5.13411 Compatibility Profile Context FireGL 15.201.2401.0
 * GLSL Version: 4.40
 * Profile: Compatibility
05:45:49,339 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.MeshLoader
05:45:49,339 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.SkeletonLoader
05:45:49,340 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.MaterialLoader
05:45:49,340 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.SceneLoader
05:45:49,341 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.blender.BlenderModelLoader
05:45:49,342 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.fbx.FbxLoader
05:45:49,344 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.audio.plugins.OGGLoader
05:45:49,372 INFO  (jME3 Main) [DefaultControllerEnvironment] Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin
05:45:49,607 INFO  (jME3 Main) [ALAudioRenderer] Audio Renderer Information
 * Device: OpenAL Soft
 * Vendor: OpenAL Community
 * Renderer: OpenAL Soft
 * Version: 1.1 ALSOFT 1.15.1
 * Supported channels: 64
 * ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
 * AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
05:45:49,607 WARN  (jME3 Main) [ALAudioRenderer] Pausing audio device not supported.
05:45:49,607 INFO  (jME3 Main) [ALAudioRenderer] Audio effect extension version: 1.0
05:45:49,608 INFO  (jME3 Main) [ALAudioRenderer] Audio max auxiliary sends: 4
05:45:49,692 INFO  (jME3 Main) [GuiGlobals] Initializing GuiGlobals with:com.simsilica.lemur.GuiGlobals@531f0e58
05:45:49,701 INFO  (jME3 Main) [GuiGlobals] Lemur build date:20160918
05:45:49,702 INFO  (jME3 Main) [BaseStyles] loadStyleResource(com/simsilica/lemur/style/base/glass-styles.groovy)
05:45:50,082 INFO  (jME3 Main) [BaseStyles] Loading base resource:jar:file:/C:/Users/Min117/.m2/repository/com/simsilica/lemur/1.9.1-SNAPSHOT/lemur-1.9.1-SNAPSHOT.jar!/com/simsilica/lemur/style/base/glass-styles.groovy
05:45:50,555 INFO  (jME3 Main) [BaseStyles] Loading extension resources for:com/simsilica/lemur/style/base/glass-styles.groovy
05:45:50,556 INFO  (jME3 Main) [BaseStyles] Loading extension resource:jar:file:/C:/Users/Min117/.m2/repository/com/simsilica/lemur-proto/1.7.2-SNAPSHOT/lemur-proto-1.7.2-SNAPSHOT.jar!/com/simsilica/lemur/style/base/glass-styles.groovy
05:45:53,771 INFO  (jME3 Main) [MainMenuState] Host a game on port:4271
05:45:53,772 INFO  (jME3 Main) [MainMenuState] Description:
05:45:53,772 INFO  (jME3 Main) [MainMenuState] This a game server.
There are many like it
but this one is mine.
05:45:53,789 DEBUG (jME3 Main) [DefaultServer] Adding standard services...
05:45:53,861 INFO  (jME3 Main) [GameServer] Initializing game systems...
05:45:53,861 TRACE (jME3 Main) [GameSystemManager] initialize()
05:45:53,864 TRACE (jME3 Main) [GameSystemManager] initializing:com.simsilica.sim.TaskDispatcher@437ff758
05:45:53,864 TRACE (jME3 Main) [GameSystemManager] initializing:example.sim.SimplePhysics@6c996097
05:45:53,865 TRACE (jME3 Main) [GameSystemManager] initializing:example.net.server.ZoneNetworkSystem@40936755
05:45:53,865 TRACE (jME3 Main) [GameSystemManager] initializing:com.simsilica.es.server.EntityUpdater@7897eaac
05:45:53,866 TRACE (jME3 Main) [GameSystemManager] initializing:example.sim.BodyPositionPublisher@446e17d1
05:45:53,866 TRACE (jME3 Main) [GameSystemManager] initializing:example.sim.BasicEnvironment@63545a13
05:45:53,868 INFO  (jME3 Main) [GameServer] Starting game server...
05:45:53,869 TRACE (jME3 Main) [GameSystemManager] start()
05:45:53,869 TRACE (jME3 Main) [GameSystemManager] starting:com.simsilica.sim.TaskDispatcher@437ff758
05:45:53,869 TRACE (jME3 Main) [GameSystemManager] starting:example.sim.SimplePhysics@6c996097
05:45:53,873 TRACE (jME3 Main) [GameSystemManager] starting:example.net.server.ZoneNetworkSystem@40936755
05:45:53,873 TRACE (jME3 Main) [GameSystemManager] starting:com.simsilica.es.server.EntityUpdater@7897eaac
05:45:53,873 TRACE (jME3 Main) [GameSystemManager] starting:example.sim.BodyPositionPublisher@446e17d1
05:45:53,873 TRACE (jME3 Main) [GameSystemManager] starting:example.sim.BasicEnvironment@63545a13
05:45:53,900 DEBUG (jME3 Main) [SerializerRegistrationsMessage] Number of registered classes:44
05:45:53,900 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-19 = com.jme3.math.Vector3f, serializer=com.jme3.network.serializing.serializers.Vector3Serializer]
05:45:53,900 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-41 = com.jme3.network.serializing.serializers.FieldSerializer, serializer=null]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-43 = [I, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-46 = [Lcom.jme3.network.message.SerializerRegistrationsMessage$Registration;, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-49 = [Ljava.lang.Object;, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-48 = com.jme3.network.service.rpc.msg.RpcCallMessage, serializer=null]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-50 = com.jme3.network.service.rpc.msg.RpcResponseMessage, serializer=null]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-51 = com.jme3.network.service.rmi.ClassInfo, serializer=null]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-52 = com.jme3.network.service.rmi.MethodInfo, serializer=null]
05:45:53,901 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-53 = com.jme3.math.Quaternion, serializer=null]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-54 = com.simsilica.ethereal.net.ClientStateMessage, serializer=null]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-56 = [B, serializer=com.jme3.network.serializing.serializers.ArraySerializer]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-55 = com.simsilica.ethereal.net.ObjectStateMessage, serializer=null]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-57 = java.lang.Class, serializer=com.simsilica.es.net.ClassSerializer]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-58 = java.lang.reflect.Field, serializer=com.simsilica.es.net.ClassFieldSerializer]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-59 = com.simsilica.es.net.ComponentChangeMessage, serializer=null]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-60 = com.simsilica.es.net.EntityDataMessage, serializer=null]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-62 = com.simsilica.es.EntityId, serializer=null]
05:45:53,902 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-61 = com.simsilica.es.net.EntityDataMessage$ComponentData, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-63 = com.simsilica.es.net.EntityIdsMessage, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-64 = com.simsilica.es.net.FindEntitiesMessage, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-65 = com.simsilica.es.net.FindEntityMessage, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-66 = com.simsilica.es.net.GetComponentsMessage, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-67 = com.simsilica.es.net.GetEntitySetMessage, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-68 = com.simsilica.es.net.ReleaseEntitySetMessage, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-69 = com.simsilica.es.net.ReleaseWatchedEntityMessage, serializer=null]
05:45:53,903 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-70 = com.simsilica.es.net.ResetEntitySetFilterMessage, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-71 = com.simsilica.es.net.ResultComponentsMessage, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-72 = com.simsilica.es.net.StringIdMessage, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-73 = com.simsilica.es.net.WatchEntityMessage, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-62 = com.simsilica.es.EntityId, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-74 = com.simsilica.es.CreatedBy, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-75 = com.simsilica.es.Name, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-76 = com.simsilica.es.filter.FieldFilter, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-77 = com.simsilica.es.filter.OrFilter, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-78 = com.simsilica.es.filter.AndFilter, serializer=null]
05:45:53,904 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-79 = com.simsilica.es.EntityChange, serializer=com.simsilica.es.net.EntityChangeSerializer]
05:45:53,905 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-75 = com.simsilica.es.Name, serializer=null]
05:45:53,905 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-80 = example.es.BodyPosition, serializer=null]
05:45:53,905 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-81 = example.es.ObjectType, serializer=null]
05:45:53,905 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-83 = com.simsilica.mathd.Vec3d, serializer=null]
05:45:53,905 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-84 = com.simsilica.mathd.Quatd, serializer=null]
05:45:53,905 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-82 = example.es.Position, serializer=null]
05:45:53,905 DEBUG (jME3 Main) [SerializerRegistrationsMessage]     Registration[-85 = example.es.SphereShape, serializer=null]
05:45:53,905 INFO  (jME3 Main) [StateCollector] Starting state collector.
05:45:53,906 INFO  (jME3 Main) [GameServer] Game server started.
05:46:05,473 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Registering client for endpoint, pass 1:NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]].
05:46:05,474 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Setting up channel:0
05:46:05,475 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] send(ChannelInfoMessage[1299291059614068, [[I@1d642820]])
05:46:05,476 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Refining client registration for endpoint:UdpEndpoint[1, /127.0.0.1:61937].
05:46:05,476 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Setting up channel:1
05:46:05,484 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Refining client registration for endpoint:NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4272 remote=/127.0.0.1:58452]].
05:46:05,484 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Setting up channel:2
05:46:05,487 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Refining client registration for endpoint:NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4273 remote=/127.0.0.1:58453]].
05:46:05,487 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Setting up channel:3
05:46:05,488 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Client registered:Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ].
05:46:05,488 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=0, gameName=null, version=0])
05:46:05,488 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(com.jme3.network.message.SerializerRegistrationsMessage@6524b0a9)
05:46:05,492 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [AccountHostedService] startHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ])
05:46:05,495 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1])
05:46:05,496 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4])
05:46:05,504 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=-1, gameName=null, version=0])
05:46:05,556 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:GetEntitySetMessage[0, null, [class example.es.BodyPosition]]
05:46:05,561 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:46:05,563 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:46:05,582 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:46:05,583 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:46:05,585 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
05:46:05,585 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
05:46:05,597 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58451]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:RpcCallMessage[#0, channel=-2, sync, objId=1, procId=0, args.length=0]
05:46:05,597 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] send(RpcResponseMessage[#0, result=This a game server.
There are many like it
but this one is mine.])
05:46:08,131 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:61937] ] received:ReleaseEntitySetMessage[0]
05:46:08,131 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection closed:NioEndpoint[1, java.nio.channels.SocketChannel[closed]].
05:46:08,131 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connections size:0
05:46:08,132 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Connection closed:NioEndpoint[1, java.nio.channels.SocketChannel[closed]].
05:46:08,132 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Endpoint mappings size:3
05:46:08,132 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Connections size:0
05:46:08,132 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Client closed:Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:61937] ].
05:46:08,132 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Endpoint mappings size:2
05:46:08,134 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [AccountHostedService] stopHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:61937] ])
05:46:08,134 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [AccountHostedService] publishing playerLoggedOff event for:Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:61937] ]
05:46:08,134 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [GameSessionHostedService] onPlayerLoggedOff()
05:46:08,134 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [GameSessionHostedService] stopHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:61937] ])
05:46:08,137 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Connection closed:UdpEndpoint[1, /127.0.0.1:61937].
05:46:08,137 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Connections size:0
05:46:08,137 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Endpoint mappings size:1
05:46:08,139 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Connection closed:NioEndpoint[1, java.nio.channels.SocketChannel[closed]].
05:46:08,139 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Connections size:0
05:46:08,139 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Endpoint mappings size:0
05:46:08,137 ERROR (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [KernelAdapter] Unhandled error, endpoint:NioEndpoint[1, java.nio.channels.SocketChannel[closed]], context:EndpointEvent[REMOVE, NioEndpoint[1, java.nio.channels.SocketChannel[closed]]]
java.lang.IllegalArgumentException: EntityId cannot be null.
	at com.simsilica.es.base.DefaultEntityData.removeComponent(DefaultEntityData.java:185) ~[zay-es-1.2.1.jar:?]
	at com.simsilica.es.base.DefaultEntityData.removeEntity(DefaultEntityData.java:126) ~[zay-es-1.2.1.jar:?]
	at example.net.server.AccountHostedService$AccountSessionImpl.dispose(AccountHostedService.java:194) ~[main/:?]
	at example.net.server.AccountHostedService.stopHostingOnConnection(AccountHostedService.java:135) ~[main/:?]
	at com.jme3.network.service.AbstractHostedConnectionService.connectionRemoved(AbstractHostedConnectionService.java:146) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.service.HostedServiceManager.removeConnection(HostedServiceManager.java:124) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.service.HostedServiceManager$ConnectionObserver.connectionRemoved(HostedServiceManager.java:137) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.DefaultServer.fireConnectionRemoved(DefaultServer.java:356) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.DefaultServer$Connection.closeConnection(DefaultServer.java:616) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.DefaultServer.connectionClosed(DefaultServer.java:513) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.connectionClosed(KernelAdapter.java:144) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:249) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.flushEvents(KernelAdapter.java:258) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:271) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
05:46:21,078 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Registering client for endpoint, pass 1:UdpEndpoint[2, /127.0.0.1:61941].
05:46:21,078 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Setting up channel:1
05:46:21,080 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Refining client registration for endpoint:NioEndpoint[2, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58460]].
05:46:21,080 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Setting up channel:0
05:46:21,080 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] send(ChannelInfoMessage[1299306674538144, [[I@55212dbc]])
05:46:21,092 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Refining client registration for endpoint:NioEndpoint[2, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4272 remote=/127.0.0.1:58461]].
05:46:21,092 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Setting up channel:2
05:46:21,097 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Refining client registration for endpoint:NioEndpoint[2, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4273 remote=/127.0.0.1:58462]].
05:46:21,097 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Setting up channel:3
05:46:21,097 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Client registered:Connection[ id=1, reliable=NioEndpoint[2, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58460]], fast=UdpEndpoint[2, /127.0.0.1:61941] ].
05:46:21,097 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=1, gameName=null, version=0])
05:46:21,097 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(com.jme3.network.message.SerializerRegistrationsMessage@6524b0a9)
05:46:21,098 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [AccountHostedService] startHostingOnConnection(Connection[ id=1, reliable=NioEndpoint[2, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:58460]], fast=UdpEndpoint[2, /127.0.0.1:61941] ])
05:46:21,098 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1])
05:46:21,098 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(-2, RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4])
05:46:21,098 TRACE (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] send(com.jme3.network.message.ClientRegistrationMessage[id=-1, gameName=null, version=0])
05:46:23,854 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connection closed:NioEndpoint[2, java.nio.channels.SocketChannel[closed]].
05:46:23,855 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Connections size:0
05:46:23,855 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Endpoint mappings size:3
05:46:23,855 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Connection closed:NioEndpoint[2, java.nio.channels.SocketChannel[closed]].
05:46:23,855 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [DefaultServer] Client closed:Connection[ id=1, reliable=NioEndpoint[2, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[2, /127.0.0.1:61941] ].
05:46:23,855 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Connections size:0
05:46:23,855 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Connection closed:UdpEndpoint[2, /127.0.0.1:61941].
05:46:23,855 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@7d00e058) [DefaultServer] Endpoint mappings size:2
05:46:23,858 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Connections size:0
05:46:23,858 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Connection closed:NioEndpoint[2, java.nio.channels.SocketChannel[closed]].
05:46:23,858 DEBUG (com.jme3.network.kernel.udp.UdpKernel@435fc0a6) [DefaultServer] Endpoint mappings size:1
05:46:23,859 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Connections size:0
05:46:23,859 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@5e82c4a4) [DefaultServer] Endpoint mappings size:0
05:46:23,860 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [AccountHostedService] stopHostingOnConnection(Connection[ id=1, reliable=NioEndpoint[2, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[2, /127.0.0.1:61941] ])
05:46:23,860 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [AccountHostedService] publishing playerLoggedOff event for:Connection[ id=1, reliable=NioEndpoint[2, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[2, /127.0.0.1:61941] ]
05:46:23,860 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [GameSessionHostedService] onPlayerLoggedOff()
05:46:23,860 DEBUG (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [GameSessionHostedService] stopHostingOnConnection(Connection[ id=1, reliable=NioEndpoint[2, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[2, /127.0.0.1:61941] ])
05:46:23,860 ERROR (com.jme3.network.kernel.tcp.SelectorKernel@24a49141) [KernelAdapter] Unhandled error, endpoint:NioEndpoint[2, java.nio.channels.SocketChannel[closed]], context:EndpointEvent[REMOVE, NioEndpoint[2, java.nio.channels.SocketChannel[closed]]]
java.lang.IllegalArgumentException: EntityId cannot be null.
	at com.simsilica.es.base.DefaultEntityData.removeComponent(DefaultEntityData.java:185) ~[zay-es-1.2.1.jar:?]
	at com.simsilica.es.base.DefaultEntityData.removeEntity(DefaultEntityData.java:126) ~[zay-es-1.2.1.jar:?]
	at example.net.server.AccountHostedService$AccountSessionImpl.dispose(AccountHostedService.java:194) ~[main/:?]
	at example.net.server.AccountHostedService.stopHostingOnConnection(AccountHostedService.java:135) ~[main/:?]
	at com.jme3.network.service.AbstractHostedConnectionService.connectionRemoved(AbstractHostedConnectionService.java:146) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.service.HostedServiceManager.removeConnection(HostedServiceManager.java:124) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.service.HostedServiceManager$ConnectionObserver.connectionRemoved(HostedServiceManager.java:137) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.DefaultServer.fireConnectionRemoved(DefaultServer.java:356) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.DefaultServer$Connection.closeConnection(DefaultServer.java:616) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.DefaultServer.connectionClosed(DefaultServer.java:513) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.connectionClosed(KernelAdapter.java:144) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:249) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.flushEvents(KernelAdapter.java:258) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:271) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
05:46:26,554 INFO  (jME3 Main) [HostState] stopHosting()
05:46:26,554 INFO  (jME3 Main) [GameServer] Stopping game server...Shutting down.
05:46:26,554 TRACE (GameLoopThread) [GameSystemManager] stop()
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] stopping:com.simsilica.sim.TaskDispatcher@437ff758
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] stopping:example.sim.SimplePhysics@6c996097
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] stopping:example.net.server.ZoneNetworkSystem@40936755
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] stopping:com.simsilica.es.server.EntityUpdater@7897eaac
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] stopping:example.sim.BodyPositionPublisher@446e17d1
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] stopping:example.sim.BasicEnvironment@63545a13
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] terminate()
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] terminating:com.simsilica.sim.TaskDispatcher@437ff758
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] terminating:example.sim.SimplePhysics@6c996097
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] terminating:example.net.server.ZoneNetworkSystem@40936755
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] terminating:com.simsilica.es.server.EntityUpdater@7897eaac
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] terminating:example.sim.BodyPositionPublisher@446e17d1
05:46:26,555 TRACE (GameLoopThread) [GameSystemManager] terminating:example.sim.BasicEnvironment@63545a13
05:46:26,556 INFO  (jME3 Main) [StateCollector] Shuttong down state collector.

#47

Client Log, this run took two connection attempts before failure. If it works the first time, I fully close the client and reopen it using gradle run. This test was performed on a new gitclone I just re-downloaded.

05:46:17,172 INFO  (main) [JmeSystem] Running on jMonkeyEngine 3.1-beta1
 * Branch: HEAD
 * Git Hash: 310f4db
 * Build Date: 2016-04-25
05:46:17,620 INFO  (jME3 Main) [LwjglContext] LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: aticfx64
 * Driver Version: 8.17.10.1404
 * Scaling Factor: 1
05:46:17,676 INFO  (jME3 Main) [GLRenderer] OpenGL Renderer Information
 * Vendor: ATI Technologies Inc.
 * Renderer: ATI FirePro V (FireGL V) Graphics Adapter
 * OpenGL Version: 4.5.13411 Compatibility Profile Context FireGL 15.201.2401.0
 * GLSL Version: 4.40
 * Profile: Compatibility
05:46:17,706 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.MeshLoader
05:46:17,707 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.SkeletonLoader
05:46:17,707 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.MaterialLoader
05:46:17,708 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.ogre.SceneLoader
05:46:17,708 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.blender.BlenderModelLoader
05:46:17,710 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.scene.plugins.fbx.FbxLoader
05:46:17,711 WARN  (jME3 Main) [AssetConfig] Cannot find loader com.jme3.audio.plugins.OGGLoader
05:46:17,739 INFO  (jME3 Main) [DefaultControllerEnvironment] Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin
05:46:17,958 INFO  (jME3 Main) [ALAudioRenderer] Audio Renderer Information
 * Device: OpenAL Soft
 * Vendor: OpenAL Community
 * Renderer: OpenAL Soft
 * Version: 1.1 ALSOFT 1.15.1
 * Supported channels: 64
 * ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
 * AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
05:46:17,959 WARN  (jME3 Main) [ALAudioRenderer] Pausing audio device not supported.
05:46:17,959 INFO  (jME3 Main) [ALAudioRenderer] Audio effect extension version: 1.0
05:46:17,959 INFO  (jME3 Main) [ALAudioRenderer] Audio max auxiliary sends: 4
05:46:18,056 INFO  (jME3 Main) [GuiGlobals] Initializing GuiGlobals with:com.simsilica.lemur.GuiGlobals@6936bcc1
05:46:18,065 INFO  (jME3 Main) [GuiGlobals] Lemur build date:20160918
05:46:18,066 INFO  (jME3 Main) [BaseStyles] loadStyleResource(com/simsilica/lemur/style/base/glass-styles.groovy)
05:46:18,452 INFO  (jME3 Main) [BaseStyles] Loading base resource:jar:file:/C:/Users/Min117/.m2/repository/com/simsilica/lemur/1.9.1-SNAPSHOT/lemur-1.9.1-SNAPSHOT.jar!/com/simsilica/lemur/style/base/glass-styles.groovy
05:46:18,999 INFO  (jME3 Main) [BaseStyles] Loading extension resources for:com/simsilica/lemur/style/base/glass-styles.groovy
05:46:19,000 INFO  (jME3 Main) [BaseStyles] Loading extension resource:jar:file:/C:/Users/Min117/.m2/repository/com/simsilica/lemur-proto/1.7.2-SNAPSHOT/lemur-proto-1.7.2-SNAPSHOT.jar!/com/simsilica/lemur/style/base/glass-styles.groovy
05:46:20,968 INFO  (jME3 Main) [MainMenuState] Connect... host:localhost  port:4271
05:46:20,982 INFO  (Thread-6) [ConnectionState] Creating game client for:localhost 4271
05:46:20,984 INFO  (Thread-6) [GameClient] Connecting to:localhost 4271
05:46:21,001 DEBUG (Thread-6) [DefaultClient] Adding standard services...
05:46:21,024 INFO  (Thread-6) [GameClient] Adding services...
05:46:21,046 DEBUG (Thread-6) [AccountClientService] onInitialize(com.jme3.network.service.ClientServiceManager[services=[com.jme3.network.service.serializer.ClientSerializerRegistrationsService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rpc.RpcClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rmi.RmiClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.AccountClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager]]])
05:46:21,047 DEBUG (Thread-6) [AccountClientService] Sharing session callback.
05:46:21,048 DEBUG (Thread-6) [GameSessionClientService] onInitialize(com.jme3.network.service.ClientServiceManager[services=[com.jme3.network.service.serializer.ClientSerializerRegistrationsService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rpc.RpcClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rmi.RmiClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.AccountClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.GameSessionClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager]]])
05:46:21,048 DEBUG (Thread-6) [GameSessionClientService] Sharing session callback.
05:46:21,054 DEBUG (Thread-6) [ChatClientService] onInitialize(com.jme3.network.service.ClientServiceManager[services=[com.jme3.network.service.serializer.ClientSerializerRegistrationsService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rpc.RpcClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rmi.RmiClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.AccountClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.GameSessionClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.simsilica.es.client.EntityDataClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.chat.client.ChatClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager]]])
05:46:21,055 DEBUG (Thread-6) [ChatClientService] Sharing session callback.
05:46:21,060 INFO  (Thread-6) [SharedObjectUpdater] onInitialize()
05:46:21,061 INFO  (Thread-6) [ConnectionState] Connection established:example.net.client.GameClient@5b2a8716
05:46:21,062 INFO  (Thread-6) [ConnectionState] Starting client...
05:46:21,062 INFO  (Thread-6) [GameClient] start()
05:46:21,063 INFO  (jME3 Main) [ConnectionState] Connection established:example.net.client.GameClient@5b2a8716
05:46:21,065 INFO  (Thread-6) [ConnectionState] Client started.
05:46:21,083 TRACE (com.jme3.network.kernel.tcp.SocketConnector@66293312) [DefaultClient] com.jme3.network.base.DefaultClient@62898b93 received:ChannelInfoMessage[1299306674538144, [[I@6c4e69b2]]
05:46:21,111 TRACE (com.jme3.network.kernel.tcp.SocketConnector@66293312) [DefaultClient] com.jme3.network.base.DefaultClient@62898b93 received:com.jme3.network.message.ClientRegistrationMessage[id=1, gameName=null, version=0]
05:46:21,111 DEBUG (com.jme3.network.kernel.tcp.SocketConnector@66293312) [DefaultClient] Connection established, id:1.
05:46:21,112 ERROR (com.jme3.network.kernel.tcp.SocketConnector@66293312) [ConnectionState] Connection error
java.lang.RuntimeException: Error deserializing object, class ID:-48
	at com.jme3.network.base.MessageProtocol.createMessage(MessageProtocol.java:184) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.MessageProtocol.addBuffer(MessageProtocol.java:160) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.ConnectorAdapter.run(ConnectorAdapter.java:169) [jme3-networking-3.1.0-beta1.jar:3.1-beta1]
Caused by: com.jme3.network.serializing.SerializerException: Class not found for buffer data.
	at com.jme3.network.serializing.Serializer.readClassAndObject(Serializer.java:391) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	at com.jme3.network.base.MessageProtocol.createMessage(MessageProtocol.java:180) ~[jme3-networking-3.1.0-beta1.jar:3.1-beta1]
	... 2 more
05:46:23,853 INFO  (jME3 Main) [ConnectionState] disconnect()
05:46:23,853 INFO  (jME3 Main) [ConnectionState] Detaching ConnectionState
05:46:23,853 INFO  (jME3 Main) [GameClient] close()
05:46:23,855 INFO  (jME3 Main) [ConnectionState] clientDisconnected(com.jme3.network.base.DefaultClient@62898b93, null)
05:46:23,886 INFO  (jME3 Main) [ConnectionState] onDisconnected(null)

#48

I think I know what the issue is. What I don’t know is why I don’t get the same error but now that I have a theory I can test something later today.

The issue is that as the raw message buffers come in, they are added to a MessageProtocol object. This object attempts to put together the messages into real classes and then adds them to an internal queue waiting for the app to pull them off and handle them.

So, if the RpcCallMessage comes in so fast that it gets added to the MessageProtocol buffer before something has pulled off and processed the serializer message, then the classes won’t have been registered with the serializer yet.

It’s funny how sometimes independent thoughts connect in a “Eureka” moment… because it was thinking about how I’d add logging to the MessageProtocol class that this occurred to me.

I’ll have to think about this to see if there is a reliable way to work around it or if it can only be fixed in SpiderMonkey.


#49

:smiley: that’s awesome news :smiley: Let me know how it goes, I’ll be on the irc channel if that makes it any easier btw.


#50

Well, you know the devil is in the details… I’m convinced it’s what’s happening but it’s such a narrow sequence of events that would make it happen that it’s hard to replicate even when I know where it is.

Are you running Windows or Linux by any chance?

For the error to happen, both messages have to be in the socket’s read buffer before the data is read… and the data for both messages has to be read at the same time. My ham-fisted app-level attempts at forcing this have been unsuccessful so far. Going to dive into the networking code next.


#51

I can recreate it on demand now. I had to insert some sleep code right into the heart of the MessageProtocol class to make it happen but now my hypothesized failure case happens 100% of the time. I’m going to use this to test an application-level work-around for the problem.


Sim-eth-basic on android
#52

In the sim-eth-es example, I’ve just checked in a new GameServer.java that has what should be a work-around for this problem. Hopefully this fixes the issue until a more correct one can be added to SpiderMonkey… but that’s much trickier as it turns out.


#53

I am using Windows 7.

I tried out your changes and was unable to get it to crash anymore. :smiley: Thanks for all your help man, that is awesome!.


#54

Not to open a new thread…
So I’ve been learning SimEtheral in the last couple of days and I have a question: Is there a simple way to convert Quaternions to Quatds and Vector3fs to Vector3ds? Manually unboxing and making new objects is tiresome and IMHO should be built into the library.

Otherwise great work, simplified my life :wink:


#55

There isn’t one for Quatd yet but I may add it soon… else you can submit a pull request.


#56

Apparently I’m blind or I am using an outdated version (I think I just copypasted the getting started gradle line). Thanks.


#57

Well, that code hadn’t been released yet… but now it has as of 30 seconds ago. :slight_smile:

And I added a Quatd(Quaternion) constructor also.

So just start using 1.1.0 and you’ll have it.


#58

Updating to SimMath 1.1.0 I am getting Vec3d serialization error

11:03:06,011 ERROR [KernelAdapter] Unhandled error, endpoint:NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4273 remote=/127.0.0.1:50886]], context:GetEntitySetMessage[2, null, [class com.overthemoon.core.es.game.ObjectType, class com.overthemoon.core.es.physics.Position]]
java.lang.RuntimeException: Error executing:public void com.simsilica.es.server.HostedEntityData.getEntitySet(com.jme3.network.HostedConnection,com.simsilica.es.net.GetEntitySetMessage)
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:238) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:59) ~[zay-es-net-1.2.1.jar:?]
	at com.jme3.network.base.MessageListenerRegistry.messageReceived(MessageListenerRegistry.java:81) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer.dispatch(DefaultServer.java:341) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Redispatch.messageReceived(DefaultServer.java:674) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Redispatch.messageReceived(DefaultServer.java:669) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.KernelAdapter.dispatch(KernelAdapter.java:187) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:241) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:284) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
Caused by: java.lang.RuntimeException: Error serializing message
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:81) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: com.jme3.network.serializing.SerializerException: Error writing object for field:private com.simsilica.es.net.EntityDataMessage$ComponentData[] com.simsilica.es.net.EntityDataMessage.data
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:209) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: com.jme3.network.serializing.SerializerException: Error writing object for field:private com.simsilica.es.EntityComponent[] com.simsilica.es.net.EntityDataMessage$ComponentData.components
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:209) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:124) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: com.jme3.network.serializing.SerializerException: Error writing object for field:private com.simsilica.mathd.Vec3d com.overthemoon.core.es.physics.Position.location
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:209) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:127) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:124) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: java.lang.IllegalArgumentException: Class has not been registered:class com.simsilica.mathd.Vec3d
	at com.jme3.network.serializing.Serializer.getSerializerRegistration(Serializer.java:359) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.getSerializerRegistration(Serializer.java:328) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClass(Serializer.java:403) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:427) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:204) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:127) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:124) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more 

serialized it with Serializer.registerClass(Vec3d.class, new FieldSerializer());

But why i did not get same error for Quatd ? Is it serialized internally somewhere ?


#59

Is this in your app or the sample apps?

It’s like the client and server are using different versions or something.

To double check that it really is registered you can turn up trace or debug logging on the com.jme3.network package… though I thought I already did in the sample apps.


#60

Yes i am in sample app (sim-eth-es)

I locally installed sim-ethereal-1.2.1-SNAPSHOT to maven local and updated sim-math version to 1.1.0

<groupId>com.simsilica</groupId><artifactId>sim-ethereal</artifactId><version>1.2.1-SNAPSHOT</version><dependencies> <dependency><groupId>org.jmonkeyengine</groupId><artifactId>jme3-networking</artifactId><version>[3.1,)</version><scope>compile</scope></dependency><dependency><groupId>com.simsilica</groupId><artifactId>sim-math</artifactId><version>1.1.0</version><scope>compile</scope></dependency></dependencies></project>

this is the debug output

DelayService.onInitialize()
Bit size:48  mask:ffffffffffff
Bit size:48  mask:ffffffffffff
12:56:34,430 INFO  [GameServer] Initializing game systems...
12:56:34,430 TRACE [GameSystemManager] initialize()
12:56:34,440 TRACE [GameSystemManager] initializing:com.simsilica.sim.TaskDispatcher@c0b41d6
12:56:34,440 TRACE [GameSystemManager] initializing:example.sim.SimplePhysics@4837595f
12:56:34,441 TRACE [GameSystemManager] initializing:example.net.server.ZoneNetworkSystem@2bffa76d
12:56:34,441 TRACE [GameSystemManager] initializing:com.simsilica.es.server.EntityUpdater@3b718392
12:56:34,442 TRACE [GameSystemManager] initializing:example.sim.BodyPositionPublisher@6d2260db
12:56:34,442 TRACE [GameSystemManager] initializing:example.sim.BasicEnvironment@1f2d2181
12:56:34,443 INFO  [GameServer] Starting game server...
12:56:34,444 TRACE [GameSystemManager] start()
12:56:34,444 TRACE [GameSystemManager] starting:com.simsilica.sim.TaskDispatcher@c0b41d6
12:56:34,444 TRACE [GameSystemManager] starting:example.sim.SimplePhysics@4837595f
12:56:34,457 TRACE [GameSystemManager] starting:example.net.server.ZoneNetworkSystem@2bffa76d
12:56:34,458 TRACE [GameSystemManager] starting:com.simsilica.es.server.EntityUpdater@3b718392
12:56:34,459 TRACE [GameSystemManager] starting:example.sim.BodyPositionPublisher@6d2260db
12:56:34,459 TRACE [GameSystemManager] starting:example.sim.BasicEnvironment@1f2d2181
DelayService.start()
12:56:34,498 INFO  [StateCollector] Starting state collector.
12:56:34,507 INFO  [GameServer] Game server started.
zone update underflow FPS:50
12:56:35,789 INFO  [HostState] joinGame()
12:56:35,818 INFO  [ConnectionState] Creating game client for:127.0.0.1 4271
12:56:35,824 INFO  [GameClient] Connecting to:127.0.0.1 4271
12:56:35,898 INFO  [SerializerRegistrationsMessage] Skipping registration of SerializerRegistrationsMessage.
12:56:35,928 INFO  [GameClient] Adding services...
12:56:35,976 DEBUG [AccountClientService] onInitialize(com.jme3.network.service.ClientServiceManager[services=[com.jme3.network.service.serializer.ClientSerializerRegistrationsService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rpc.RpcClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rmi.RmiClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.AccountClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager]]])
12:56:35,977 DEBUG [AccountClientService] Sharing session callback.
12:56:35,981 DEBUG [GameSessionClientService] onInitialize(com.jme3.network.service.ClientServiceManager[services=[com.jme3.network.service.serializer.ClientSerializerRegistrationsService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rpc.RpcClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rmi.RmiClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.AccountClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.GameSessionClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager]]])
12:56:35,982 DEBUG [GameSessionClientService] Sharing session callback.
12:56:35,994 DEBUG [ChatClientService] onInitialize(com.jme3.network.service.ClientServiceManager[services=[com.jme3.network.service.serializer.ClientSerializerRegistrationsService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rpc.RpcClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.jme3.network.service.rmi.RmiClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.AccountClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.client.GameSessionClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], com.simsilica.es.client.EntityDataClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager], example.net.chat.client.ChatClientService[serviceManager.class=class com.jme3.network.service.ClientServiceManager]]])
12:56:35,996 DEBUG [ChatClientService] Sharing session callback.
12:56:36,045 INFO  [SharedObjectUpdater] onInitialize()
12:56:36,051 INFO  [ConnectionState] Connection established:example.net.client.GameClient@5190ff3e
12:56:36,063 INFO  [ConnectionState] Starting client...
12:56:36,065 INFO  [GameClient] start()
12:56:36,073 INFO  [ConnectionState] Connection established:example.net.client.GameClient@5190ff3e
12:56:36,082 INFO  [ConnectionState] Client started.
12:56:36,168 INFO  [MessageDebugger] Received:com.jme3.network.message.SerializerRegistrationsMessage@181ffbd7
12:56:36,169 INFO  [SerializerRegistrationsMessage] Skipping registration as registry is locked, presumably by a local server process.
DelayService.connectionAdded(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:47032]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
zone update underflow FPS:57
DelayService.delay done
12:56:36,698 DEBUG [AccountHostedService] startHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:47032]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
12:56:36,727 INFO  [MessageDebugger] Received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
12:56:36,737 INFO  [MessageDebugger] Received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
12:56:36,785 DEBUG [AccountClientService] start()
12:56:36,787 DEBUG [AccountClientService] delegate:RemoteObject[#1, example.net.AccountSession]
12:56:36,795 DEBUG [GameSessionClientService] start()
12:56:36,797 DEBUG [ChatClientService] start()
12:56:36,798 INFO  [SharedObjectUpdater] start()
12:56:36,830 INFO  [ConnectionState] clientConnected(com.jme3.network.base.DefaultClient@7d7411a7)
12:56:36,866 INFO  [ConnectionState] onConnected()
12:56:36,883 INFO  [MessageDebugger] Received:RpcResponseMessage[#0, result=This a game server.
There are many like it
but this one is mine.]
12:56:36,883 DEBUG [ConnectionState] Server info:This a game server.
There are many like it
but this one is mine.
zone update underflow FPS:58
12:56:37,877 INFO  [ConnectionState] join(idea)
12:56:37,885 INFO  [AccountHostedService] login(idea)
12:56:37,886 INFO  [AccountHostedService] Created player entity:EntityId[64] for:idea
12:56:37,895 DEBUG [AccountHostedService] publishing playerLoggedOn event for:Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:47032]], fast=UdpEndpoint[1, /127.0.0.1:51942] ]
12:56:37,898 INFO  [MessageDebugger] Received:RpcCallMessage[#-1, channel=-2, async, objId=1, procId=0, args.length=1]
12:56:37,902 DEBUG [GameSessionHostedService] onPlayerLoggedOn()
12:56:37,906 DEBUG [GameSessionHostedService] startHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:47032]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
Set position on:EntityId[65]
12:56:37,916 INFO  [MessageDebugger] Received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
12:56:37,918 INFO  [MessageDebugger] Received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
12:56:37,961 DEBUG [ChatHostedService] startHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4271 remote=/127.0.0.1:47032]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
12:56:37,970 INFO  [MessageDebugger] Received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=0, args.length=1]
12:56:37,973 INFO  [MessageDebugger] Received:RpcCallMessage[#-1, channel=-2, async, objId=-1, procId=1, args.length=4]
12:56:37,993 INFO  [MessageDebugger] Object state updates started.
12:56:38,008 INFO  [MessageDebugger] Received:EntityDataMessage[0, [ComponentData[EntityId[65], [BodyPosition[null]]]]]
12:56:38,009 INFO  [MessageDebugger] Received:ComponentChangeMessage[[EntityChange[EntityId[65], BodyPosition[null], class example.es.BodyPosition]]]
zone update underflow FPS:53
12:56:38,479 INFO  [MessageDebugger] Received:EntityDataMessage[1, [ComponentData[EntityId[65], [ObjectType[type=1], BodyPosition[null]]]]]
12:56:38,485 INFO  [PlayerMovementState] initialize()
12:56:38,493 INFO  [PlayerMovementState] onEnable()
12:56:38,501 ERROR [KernelAdapter] Unhandled error, endpoint:NioEndpoint[1, java.nio.channels.SocketChannel[connected local=/127.0.0.1:4273 remote=/127.0.0.1:53634]], context:GetEntitySetMessage[2, null, [class example.es.ObjectType, class example.es.Position]]
java.lang.RuntimeException: Error executing:public void com.simsilica.es.server.HostedEntityData.getEntitySet(com.jme3.network.HostedConnection,com.simsilica.es.net.GetEntitySetMessage)
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:238) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:59) ~[zay-es-net-1.2.1.jar:?]
	at com.jme3.network.base.MessageListenerRegistry.messageReceived(MessageListenerRegistry.java:81) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer.dispatch(DefaultServer.java:341) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Redispatch.messageReceived(DefaultServer.java:674) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Redispatch.messageReceived(DefaultServer.java:669) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.KernelAdapter.dispatch(KernelAdapter.java:187) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.KernelAdapter.createAndDispatch(KernelAdapter.java:241) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.KernelAdapter.run(KernelAdapter.java:284) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
Caused by: java.lang.RuntimeException: Error serializing message
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:81) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: com.jme3.network.serializing.SerializerException: Error writing object for field:private com.simsilica.es.net.EntityDataMessage$ComponentData[] com.simsilica.es.net.EntityDataMessage.data
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:209) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: com.jme3.network.serializing.SerializerException: Error writing object for field:private com.simsilica.es.EntityComponent[] com.simsilica.es.net.EntityDataMessage$ComponentData.components
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:209) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:124) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: com.jme3.network.serializing.SerializerException: Error writing object for field:private com.simsilica.mathd.Vec3d example.es.Position.location
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:209) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:127) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:124) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
Caused by: java.lang.IllegalArgumentException: Class has not been registered:class com.simsilica.mathd.Vec3d
	at com.jme3.network.serializing.Serializer.getSerializerRegistration(Serializer.java:359) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.getSerializerRegistration(Serializer.java:328) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClass(Serializer.java:403) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:427) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:204) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:127) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeArray(ArraySerializer.java:124) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.ArraySerializer.writeObject(ArraySerializer.java:109) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.serializers.FieldSerializer.writeObject(FieldSerializer.java:202) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.serializing.Serializer.writeClassAndObject(Serializer.java:444) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.MessageProtocol.messageToBuffer(MessageProtocol.java:73) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.DefaultServer$Connection.send(DefaultServer.java:597) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.simsilica.es.server.HostedEntityData.sendAndClear(HostedEntityData.java:354) ~[zay-es-net-1.2.1.jar:?]
	at com.simsilica.es.server.HostedEntityData.getEntitySet(HostedEntityData.java:292) ~[zay-es-net-1.2.1.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
	at com.simsilica.es.net.AbstractMessageDelegator.messageReceived(AbstractMessageDelegator.java:231) ~[zay-es-net-1.2.1.jar:?]
	... 8 more
12:56:38,561 DEBUG [AccountHostedService] stopHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
12:56:38,562 ERROR [ConnectionState] Connection error
com.jme3.network.kernel.ConnectorException: Connector closed.
	at com.jme3.network.base.ConnectorAdapter.run(ConnectorAdapter.java:161) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
12:56:38,562 DEBUG [AccountHostedService] publishing playerLoggedOff event for:Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:51942] ]
12:56:38,561 ERROR [ConnectionState] Connection error
com.jme3.network.kernel.ConnectorException: Connector closed.
	at com.jme3.network.base.ConnectorAdapter.run(ConnectorAdapter.java:161) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
12:56:38,575 DEBUG [GameSessionHostedService] onPlayerLoggedOff()
12:56:38,568 ERROR [ConnectionState] Connection error
com.jme3.network.kernel.ConnectorException: Connection is closed:/127.0.0.1:4271
	at com.jme3.network.kernel.tcp.SocketConnector.checkClosed(SocketConnector.java:81) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.kernel.tcp.SocketConnector.write(SocketConnector.java:140) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.ConnectorAdapter$WriterThread.write(ConnectorAdapter.java:197) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.ConnectorAdapter$WriterThread.run(ConnectorAdapter.java:208) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
12:56:38,562 ERROR [ConnectionState] Connection error
com.jme3.network.kernel.ConnectorException: Connector closed.
	at com.jme3.network.base.ConnectorAdapter.run(ConnectorAdapter.java:161) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
12:56:38,576 DEBUG [GameSessionHostedService] stopHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
12:56:38,581 DEBUG [GameSessionHostedService] Closing game session for:Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:51942] ]
12:56:38,582 DEBUG [ChatHostedService] stopHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
12:56:38,588 DEBUG [GameSessionHostedService] stopHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
12:56:38,589 DEBUG [ChatHostedService] stopHostingOnConnection(Connection[ id=0, reliable=NioEndpoint[1, java.nio.channels.SocketChannel[closed]], fast=UdpEndpoint[1, /127.0.0.1:51942] ])
12:56:38,595 ERROR [GameSystemManager] Error updating systems
java.lang.NullPointerException
	at example.sim.BodyPositionPublisher.removeBody(BodyPositionPublisher.java:110) ~[main/:?]
	at example.sim.SimplePhysics.fireBodyListListeners(SimplePhysics.java:164) ~[main/:?]
	at example.sim.SimplePhysics.update(SimplePhysics.java:193) ~[main/:?]
	at com.simsilica.sim.GameSystemManager.update(GameSystemManager.java:288) [sio2-1.0.3.jar:?]
	at com.simsilica.sim.GameLoop$Runner.run(GameLoop.java:167) [sio2-1.0.3.jar:?]
12:56:38,596 WARN  [KernelAdapter] Recieved message from unconnected endpoint:NioEndpoint[1, java.nio.channels.SocketChannel[closed]]  message:GetEntitySetMessage[3, null, [class com.simsilica.es.Name, class example.es.BodyPosition]]
All InputMapper function mappings:
FunctionId[UI Navigation:X Axis]
  mappings:
    StateGroup[FunctionId[UI Navigation:X Axis]:-1.0, 203]
      primary:Left
    StateGroup[FunctionId[UI Navigation:X Axis]:1.0, 205]
      primary:Right
    StateGroup[FunctionId[UI Navigation:X Axis]:1.0, Axis[joystick_left_x]]
      primary:Axis[joystick_left_x]
    StateGroup[FunctionId[UI Navigation:X Axis]:1.0, Axis[hat_x]]
      primary:Axis[hat_x]
FunctionId[Movement:Elevate]
  mappings:
    StateGroup[FunctionId[Movement:Elevate]:1.0, 16]
      primary:Q
    StateGroup[FunctionId[Movement:Elevate]:-1.0, 44]
      primary:Z
    StateGroup[FunctionId[Movement:Elevate]:1.0, Axis[hat_y]]
      primary:Axis[hat_y]
FunctionId[In Game:Time Debug]
  mappings:
    StateGroup[FunctionId[In Game:Time Debug]:1.0, 65]
      primary:F7
FunctionId[UI Navigation:Y Axis]
  mappings:
    StateGroup[FunctionId[UI Navigation:Y Axis]:1.0, 200]
      primary:Up
    StateGroup[FunctionId[UI Navigation:Y Axis]:-1.0, 208]
      primary:Down
    StateGroup[FunctionId[UI Navigation:Y Axis]:-1.0, Axis[joystick_left_y]]
      primary:Axis[joystick_left_y]
    StateGroup[FunctionId[UI Navigation:Y Axis]:1.0, Axis[hat_y]]
      primary:Axis[hat_y]
FunctionId[In Game:Command Console]
  mappings:
    StateGroup[FunctionId[In Game:Command Console]:1.0, 28]
      primary:Enter
    StateGroup[FunctionId[In Game:Command Console]:1.0, 156]
      primary:Numpad Enter
FunctionId[In Game:Player List]
  mappings:
    StateGroup[FunctionId[In Game:Player List]:1.0, 60]
      primary:F2
FunctionId[Movement:Y Rotate]
  mappings:
    StateGroup[FunctionId[Movement:Y Rotate]:1.0, Axis[mouse_y]]
      primary:Axis[mouse_y]
    StateGroup[FunctionId[Movement:Y Rotate]:1.0, 200]
      primary:Up
    StateGroup[FunctionId[Movement:Y Rotate]:-1.0, 208]
      primary:Down
    StateGroup[FunctionId[Movement:Y Rotate]:1.0, Axis[joystick_right_y]]
      primary:Axis[joystick_right_y]
FunctionId[Movement:X Rotate]
  mappings:
    StateGroup[FunctionId[Movement:X Rotate]:1.0, Axis[mouse_x]]
      primary:Axis[mouse_x]
    StateGroup[FunctionId[Movement:X Rotate]:-1.0, 203]
      primary:Left
    StateGroup[FunctionId[Movement:X Rotate]:1.0, 205]
      primary:Right
    StateGroup[FunctionId[Movement:X Rotate]:1.0, Axis[joystick_right_x]]
      primary:Axis[joystick_right_x]
FunctionId[In Game:In-Game Help]
  mappings:
    StateGroup[FunctionId[In Game:In-Game Help]:1.0, 59]
      primary:F1
FunctionId[UI Navigation:Activate]
  mappings:
    StateGroup[FunctionId[UI Navigation:Activate]:1.0, 28]
      primary:Enter
    StateGroup[FunctionId[UI Navigation:Activate]:1.0, 156]
      primary:Numpad Enter
    StateGroup[FunctionId[UI Navigation:Activate]:1.0, Button[joystick_3]]
      primary:Button[joystick_3]
    StateGroup[FunctionId[UI Navigation:Activate]:1.0, 57]
      primary:Space
FunctionId[Movement:Strafe]
  mappings:
    StateGroup[FunctionId[Movement:Strafe]:-1.0, 30]
      primary:A
    StateGroup[FunctionId[Movement:Strafe]:1.0, 32]
      primary:D
    StateGroup[FunctionId[Movement:Strafe]:1.0, Axis[joystick_left_x]]
      primary:Axis[joystick_left_x]
    StateGroup[FunctionId[Movement:Strafe]:1.0, Axis[hat_x]]
      primary:Axis[hat_x]
FunctionId[Movement:Boost]
  mappings:
    StateGroup[FunctionId[Movement:Boost]:1.0, 42]
      primary:Left Shift
    StateGroup[FunctionId[Movement:Boost]:1.0, Button[joystick_right1]]
      primary:Button[joystick_right1]
FunctionId[UI Navigation:Next]
  mappings:
    StateGroup[FunctionId[UI Navigation:Next]:1.0, 15]
      primary:Tab
FunctionId[UI Navigation:Previous]
  mappings:
    StateGroup[FunctionId[UI Navigation:Previous]:1.0, 15]
      primary:Tab
      modifier:Left Shift
    StateGroup[FunctionId[UI Navigation:Previous]:1.0, 15]
      primary:Tab
      modifier:Right Shift
FunctionId[In Game:Menu]
  mappings:
    StateGroup[FunctionId[In Game:Menu]:1.0, 1]
      primary:Esc
    StateGroup[FunctionId[In Game:Menu]:1.0, Button[joystick_select]]
      primary:Button[joystick_select]
    StateGroup[FunctionId[In Game:Menu]:1.0, Button[joystick_8]]
      primary:Button[joystick_8]
FunctionId[Movement:Thrust]
  mappings:
    StateGroup[FunctionId[Movement:Thrust]:1.0, 17]
      primary:W
    StateGroup[FunctionId[Movement:Thrust]:-1.0, 31]
      primary:S
    StateGroup[FunctionId[Movement:Thrust]:-1.0, Axis[joystick_left_y]]
      primary:Axis[joystick_left_y]
12:56:38,859 INFO  [GameSessionState] initialize()
12:56:38,863 DEBUG [GameSessionClientService] delegate:RemoteObject[#2, example.net.GameSession]
12:56:38,866 ERROR [ConnectionState] Connection error
com.jme3.network.kernel.ConnectorException: Connection is closed:/127.0.0.1:4271
	at com.jme3.network.kernel.tcp.SocketConnector.checkClosed(SocketConnector.java:81) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.kernel.tcp.SocketConnector.write(SocketConnector.java:140) ~[jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.ConnectorAdapter$WriterThread.write(ConnectorAdapter.java:197) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
	at com.jme3.network.base.ConnectorAdapter$WriterThread.run(ConnectorAdapter.java:208) [jme3-networking-3.2.0-SNAPSHOT.jar:3.2-1]
zone update underflow FPS:58