Concurrent Modification Exception

Post here your questions about SFS2X. Here we discuss all server-side matters. For client API questions see the dedicated forums.

Moderators: Lapo, Bax

Sreelu
Posts: 22
Joined: 03 Oct 2016, 08:02

Concurrent Modification Exception

Postby Sreelu » 21 Jun 2017, 12:47

While iam trying to join players to room, and update room variables, send some extension response..facing concurrent modification exception.
This is not happening everytime..Only at times,
Please help in resolving this issue
PFB exception stack trace:

21 Jun 2017 | 17:20:21,275 | WARN | Timer-8 | v2.protocol.SFSIoHandler | | com.smartfoxserver.v2.exceptions.SFSRuntimeException:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Exception: com.smartfoxserver.v2.exceptions.SFSRuntimeException
Message: java.util.ConcurrentModificationException
+--- --- ---+
Stack Trace:
+--- --- ---+
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.pojo2sfs(DefaultSFSDataSerializer.java:1399)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.encodeObject(DefaultSFSDataSerializer.java:834)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.obj2bin(DefaultSFSDataSerializer.java:508)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.object2binary(DefaultSFSDataSerializer.java:491)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.encodeObject(DefaultSFSDataSerializer.java:830)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.obj2bin(DefaultSFSDataSerializer.java:508)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.object2binary(DefaultSFSDataSerializer.java:491)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.encodeObject(DefaultSFSDataSerializer.java:830)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.obj2bin(DefaultSFSDataSerializer.java:508)
com.smartfoxserver.v2.protocol.serialization.DefaultSFSDataSerializer.object2binary(DefaultSFSDataSerializer.java:491)
com.smartfoxserver.v2.entities.data.SFSObject.toBinary(SFSObject.java:234)
com.smartfoxserver.v2.protocol.binary.BinaryIoHandler.handleWrite(BinaryIoHandler.java:80)
com.smartfoxserver.v2.protocol.SFSIoHandler.onDataWrite(SFSIoHandler.java:222)
com.smartfoxserver.v2.protocol.SFSProtocolCodec.onPacketWrite(SFSProtocolCodec.java:157)
com.smartfoxserver.bitswarm.core.BitSwarmEngine.writeToSocket(BitSwarmEngine.java:397)
com.smartfoxserver.bitswarm.core.BitSwarmEngine.write(BitSwarmEngine.java:391)
com.smartfoxserver.bitswarm.io.Response.write(Response.java:70)
com.smartfoxserver.v2.api.response.SFSResponseApi.sendExtResponse(SFSResponseApi.java:91)
com.smartfoxserver.v2.api.SFSApi.sendExtensionResponse(SFSApi.java:1497)
com.smartfoxserver.v2.extensions.BaseSFSExtension.send(BaseSFSExtension.java:439)
com.smartfoxserver.v2.extensions.BaseSFSExtension.send(BaseSFSExtension.java:416)
com.common.ServerResponseManager.sendMessage(ServerResponseManager.java:1766)
com.common.ServerResponseManager.sendSeatAllocationSuccess(ServerResponseManager.java:813)
com.strike.MyAdapter.sendSeatAllocationSucces(MyAdapter.java:230)
com.game.BaseGameSTM.notifySeatAlotted(BaseGameSTM.java:458)
com.game.BaseGameSTM.notifySeat(BaseGameSTM.java:390)
com.game.BaseGameSTM.seating(BaseGameSTM.java:259)
com.game.BaseGameSTM.access$0(BaseGameSTM.java:256)
com.game.BaseGameSTM$4.run(BaseGameSTM.java:248)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
User avatar
Lapo
Site Admin
Posts: 23025
Joined: 21 Mar 2005, 09:50
Location: Italy

Re: Concurrent Modification Exception

Postby Lapo » 21 Jun 2017, 13:49

It looks like you're recycling an SFSObject causing concurrency issues.
Keep in mind that SFSObject/Array is not thread safe so once you have used it you should not reuse the same object for something else.

Example:
you create an SFSObject,
populate it
send it to a bunch of users
then modify it again for some other reason <-- problem!

Check you code for a similar situation. The stack trace should point you in the right direction.

cheers
Lapo
--
gotoAndPlay()
...addicted to flash games
Sreelu
Posts: 22
Joined: 03 Oct 2016, 08:02

Re: Concurrent Modification Exception

Postby Sreelu » 22 Jun 2017, 11:08

Thanku..'ll look into

Return to “SFS2X Questions”

Who is online

Users browsing this forum: No registered users and 72 guests