Basically, the code disconnects of different characters belonging to the user on login.
This exception happens sometimes, not always.
Code: Select all
com.smartfoxserver.v2.exceptions.SFSRuntimeException: Can't remove user: ( User Name: [Filtered], Id: 40930, Priv: 1, Sess: [Filtered] ) , from: [ Room: [Filtered], Id: 1491, Group: [Filtered], isGame: false ]
at com.smartfoxserver.v2.entities.managers.SFSRoomManager.removeUser(SFSRoomManager.java:520)
at com.smartfoxserver.v2.entities.managers.SFSRoomManager.removeUser(SFSRoomManager.java:505)
at com.smartfoxserver.v2.entities.SFSZone.removeUser(SFSZone.java:1292)
at com.smartfoxserver.v2.api.SFSApi.disconnectUser(SFSApi.java:323)
at com.custom.service.SFSUserService.disconnect(SFSUserService.java:289)
at com.custom.handler.LoginEventHandler.handle(LoginEventHandler.java:244)
at com.custom.handler.EventHandler.handleServerEvent(EventHandler.java:32)
at com.smartfoxserver.v2.extensions.SFSExtension.handleServerEvent(SFSExtension.java:282)
at com.smartfoxserver.v2.entities.managers.SFSExtensionManager.dispatchEvent(SFSExtensionManager.java:773)
at com.smartfoxserver.v2.entities.managers.SFSExtensionManager.dispatchZoneLevelEvent(SFSExtensionManager.java:694)
at com.smartfoxserver.v2.entities.managers.SFSExtensionManager.handleServerEvent(SFSExtensionManager.java:898)
at com.smartfoxserver.v2.core.SFSEventManager$SFSEventRunner.run(SFSEventManager.java:66)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.lang.Thread.run(Thread.java:829)Code:
Code: Select all
public void disconnect(User user, IDisconnectionReason reason) throws SanalikaException
{
if (user == null || !user.isConnected())
return;
user.disconnect(reason);
API.disconnectUser(user);
}