Page 1 of 1

NPE when lag monitor not enabled

Posted: 09 Mar 2012, 10:43
by guycoleman
I'm seeing a NullPointer exception in the Java client during logout when the lag monitor is not enabled:

Code: Select all

java.lang.NullPointerException
	at sfs2x.client.SmartFox.handleLogout(SmartFox.java:1196)
	at sfs2x.client.controllers.system.ResLogout.handleResponse(ResLogout.java:23)
	at sfs2x.client.controllers.SystemController.handleMessage(SystemController.java:104)
	at sfs2x.client.core.SFSProtocolCodec.dispatchRequest(SFSProtocolCodec.java:144)
	at sfs2x.client.core.SFSProtocolCodec.onPacketRead(SFSProtocolCodec.java:50)
	at sfs2x.client.core.SFSIOHandler.handlePacketData(SFSIOHandler.java:281)
	at sfs2x.client.core.SFSIOHandler.onDataRead(SFSIOHandler.java:130)
	at sfs2x.client.bitswarm.BitSwarmClient.onSocketData(BitSwarmClient.java:357)
	at sfs2x.client.bitswarm.BitSwarmClient.access$200(BitSwarmClient.java:26)
	at sfs2x.client.bitswarm.BitSwarmClient$3.dispatch(BitSwarmClient.java:105)
	at sfs2x.client.core.EventDispatcher.dispatchEvent(EventDispatcher.java:52)
	at sfs2x.client.core.sockets.TCPSocketLayer.callOnData(TCPSocketLayer.java:144)
	at sfs2x.client.core.sockets.TCPSocketLayer.handleBinaryData(TCPSocketLayer.java:138)
	at sfs2x.client.core.sockets.TCPSocketLayer.access$700(TCPSocketLayer.java:23)
	at sfs2x.client.core.sockets.TCPSocketLayer$NettyIOHandler.messageReceived(TCPSocketLayer.java:273)
	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:351)
	at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282)
	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202)
	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Also a similar one when disconnect is called:

Code: Select all

java.lang.NullPointerException
	at sfs2x.client.util.LagMonitor.stop(LagMonitor.java:52)
	at sfs2x.client.SmartFox.reset(SmartFox.java:196)
	at sfs2x.client.SmartFox.onSocketClose(SmartFox.java:1036)
	at sfs2x.client.SmartFox.access$100(SmartFox.java:50)
	at sfs2x.client.SmartFox$2.dispatch(SmartFox.java:160)
	at sfs2x.client.core.EventDispatcher.dispatchEvent(EventDispatcher.java:52)
	at sfs2x.client.bitswarm.BitSwarmClient.dispatchEvent(BitSwarmClient.java:348)
	at sfs2x.client.bitswarm.BitSwarmClient.onSocketClose(BitSwarmClient.java:304)
	at sfs2x.client.bitswarm.BitSwarmClient.access$100(BitSwarmClient.java:26)
	at sfs2x.client.bitswarm.BitSwarmClient$2.dispatch(BitSwarmClient.java:99)
	at sfs2x.client.core.EventDispatcher.dispatchEvent(EventDispatcher.java:52)
	at sfs2x.client.core.sockets.TCPSocketLayer.callOnDisconnect(TCPSocketLayer.java:160)
	at sfs2x.client.core.sockets.TCPSocketLayer.handleDisconnection(TCPSocketLayer.java:125)
	at sfs2x.client.core.sockets.TCPSocketLayer.access$400(TCPSocketLayer.java:23)
	at sfs2x.client.core.sockets.TCPSocketLayer$NettyIOHandler.channelDisconnected(TCPSocketLayer.java:252)
	at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:132)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
	at org.jboss.netty.channel.Channels.fireChannelDisconnected(Channels.java:360)
	at org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:595)
	at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:115)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:771)
	at org.jboss.netty.channel.SimpleChannelHandler.disconnectRequested(SimpleChannelHandler.java:334)
	at org.jboss.netty.channel.SimpleChannelHandler.handleDownstream(SimpleChannelHandler.java:286)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)
	at org.jboss.netty.channel.Channels.disconnect(Channels.java:689)
	at org.jboss.netty.channel.AbstractChannel.disconnect(AbstractChannel.java:214)
	at sfs2x.client.core.sockets.TCPSocketLayer.disconnect(TCPSocketLayer.java:203)
	at sfs2x.client.bitswarm.BitSwarmClient.disconnect(BitSwarmClient.java:240)
	at sfs2x.client.SmartFox.disconnect(SmartFox.java:494)
Does the Java client support running without the lag monitor?

[edit] fix subject typo

Re: NPE when log monitor not enabled

Posted: 16 Mar 2012, 15:35
by ThomasLund
Thanks for reporting - will investigate and fix!

/Thomas

Re: NPE when lag monitor not enabled

Posted: 16 Mar 2012, 15:58
by ThomasLund
Fixed! Thanks

Re: NPE when lag monitor not enabled

Posted: 16 Mar 2012, 16:18
by guycoleman
Great, thanks for the quick fix.

Any idea when the new client API will be available?

Re: NPE when lag monitor not enabled

Posted: 16 Mar 2012, 16:29
by ThomasLund
Throw me your email in a PM and I can send you a build.

/Thomas

Re: NPE when lag monitor not enabled

Posted: 09 May 2012, 19:09
by rgfernan
This seems to be happening again with client API of the new version. I go back to release 3 and it works again.

Re: NPE when lag monitor not enabled

Posted: 11 May 2012, 07:14
by Bax
rgfernan wrote:This seems to be happening again with client API of the new version. I go back to release 3 and it works again.
With "new version" are you referring to the SmartFoxServer 2.1.0 patch? Because it doesn't contain the API. All API updates are available here: http://www.smartfoxserver.com/download/sfs2x#p=updates

Re: NPE when lag monitor not enabled

Posted: 11 May 2012, 13:50
by rgfernan
Ok. I meant the libraries on the final release. I will download the updates then.
Thanks.

Re: NPE when lag monitor not enabled

Posted: 06 Aug 2012, 05:53
by cristianpark
I'm facing this too with the newest version available on download links. All I do is

Code: Select all

sfsClient.send(new LogoutRequest());
as you can see on my code here [1], the event is launched when the user is loged and joined into a room (in a simple chat) and he/she press the back button (back to login screen), I register the listener but I can't get to the log on the dispatch method since I'm having the null pointer error

Thanks in advance

[1] http://sourceforge.net/p/chattered/code ... tered.java