Page 1 of 1

Custom login event not firing when sending SFSObject

Posted: 28 Aug 2024, 19:08
by AlaskanDruid
Thanks Lupo for the reference here: viewtopic.php?f=18&t=16497
I'll try to add all the information requested.

1 » SmartFoxServer version used

Version 2.20.0

2 » Client technology and client API version (which is found in the version property of the main SmartFox object instance)

C# API 1.8.3
Godot 4.3 Mono

3 » Concise description of the issue

Server refuses to fire off login handler event if you pass a SFSObject as part of the parameters. HOWEVER, server will fire off login handler event if you only pass the username parameter.

If you comment out this line in the client, the server event will fire:

Code: Select all

parms.PutClass("AuthTicket", Auth_Ticket);


Auth_Ticket is of type: Godot.Collections.Dictionary

If this helps.

4 » Specify if the problem is happening while testing locally or in production, or both

Occurring while testing locally.

5 » Specify if the problem is intermittent or it happens all the times. If the latter, provide a step by step description of how to reproduce the problem

Happens all the time. Steps to reproduce:

Create server side extension in Java 8 and Eclipse 2024-06 following instructions found @ https://smartfoxserver.com/blog/how-to- ... tom-login/

Modify to the following:

Code: Select all

import com.smartfoxserver.v2.core.ISFSEvent;
import com.smartfoxserver.v2.core.SFSEventParam;
import com.smartfoxserver.v2.entities.data.SFSObject;
import com.smartfoxserver.v2.exceptions.SFSErrorCode;
import com.smartfoxserver.v2.exceptions.SFSErrorData;
import com.smartfoxserver.v2.exceptions.SFSException;
import com.smartfoxserver.v2.exceptions.SFSLoginException;
import com.smartfoxserver.v2.extensions.BaseServerEventHandler;

public class LoginEventHandler extends BaseServerEventHandler
{
   @Override
   public void handleServerEvent(ISFSEvent event) throws SFSException
   {
      String name = (String) event.getParameter(SFSEventParam.LOGIN_NAME);
     
      trace("LOGIN EXT: Username: " + name);
     
     
      if (name.equals("Gonzo") || name.equals("Kermit"))
      {
 
        // Create the error code to send to the client
        SFSErrorData errData = new SFSErrorData(SFSErrorCode.LOGIN_BAD_USERNAME);
        errData.addParameter(name);
 
        // Fire a Login exception
        throw new SFSLoginException("Gonzo and Kermit are not allowed in this Zone!", errData);
      }
     
      // get steam Id from custom object
      SFSObject obj = (SFSObject) event.getParameter(SFSEventParam.LOGIN_IN_DATA);
      long steamId = (long) obj.getLong("SteamId");
      trace("STEAM ID FROM C#: " + steamId);
     
      // get other thing from custom object
     
     
   }   
}


Deploy to the server zone, BasicExamples.

For client side, download the C# API and open the visual studio solution file to add reference and save.

In your C# file's login method...

Code: Select all

private void Login()
   {
      GD.Print("Performing login...");
      
      // attach ticket and steam id to login... params?
      SFSObject parms = new SFSObject();
      parms.PutLong("SteamId", SteamId);
      parms.PutClass("AuthTicket", Auth_Ticket);

      // Login
      // PARAMS require custom login module in place....
      sfs.Send(new LoginRequest(SteamId.ToString())); // <---- server properly handles this
      //sfs.Send(new LoginRequest(SteamId.ToString(), "", "", parms)); // <--- server ignores this (could add anything to pass/zone, still ignores)
   }


Hit play.

You can comment out any of the bottom line to see which line the server ignores.


6 » Check your server side logs for errors that might be related and post them here as well. Logs are found under SFS2X/logs/smartfox.log

Nothing in logs, server just waits... then times out/disconnects.

7 » If the problem is detected via the AdminTool please post the relevant screenshots with the report.

I cannot find an admin tool reports section.

8 » Post the relevant snippets of client/server code where appropriate, but make sure to trim all the code that is irrelevant (such as rendering, other game logic etc...)

Added in step #5.

9 » If your server is in an unresponsive state (e.g. doesn't respond to client requests or AdminTool) DO NOT restart it immediately. Instead please capture a Thread Dump and send it to us. Follow these simple instructions to obtain the report: http://forums.smartfoxserver.com/vi ... 18&t=14458.

Server is NOT in an unresponsive state. It can still accept connections from other clients as long as they only pass the username. The server will, however, will not fire any login events if a client passes the SFSObject as part of the LoginRequest.

Cannot attach thread dump. Forum software doesn't allow text files attachments, so I'll spit it out below as part of the post:

Code: Select all

"main" prio=5 Id=1 RUNNABLE

"Reference Handler" daemon prio=10 Id=2 RUNNABLE
   at java.base@11.0.13/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
   at java.base@11.0.13/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
   at java.base@11.0.13/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

"Finalizer" daemon prio=8 Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@1d0c816
   at java.base@11.0.13/java.lang.Object.wait(Native Method)
   -  waiting on java.lang.ref.ReferenceQueue$Lock@1d0c816
   at java.base@11.0.13/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
   at java.base@11.0.13/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
   at java.base@11.0.13/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

"Signal Dispatcher" daemon prio=9 Id=4 RUNNABLE

"Attach Listener" daemon prio=5 Id=5 RUNNABLE

"Common-Cleaner" daemon prio=8 Id=12 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@2ab80d57
   at java.base@11.0.13/java.lang.Object.wait(Native Method)
   -  waiting on java.lang.ref.ReferenceQueue$Lock@2ab80d57
   at java.base@11.0.13/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
   at java.base@11.0.13/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)
   at java.base@11.0.13/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

"org.apache.commons.vfs.cache.SoftRefFilesCache$SoftRefReleaseThread" daemon prio=5 Id=17 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@6c40b8c0
   at java.base@11.0.13/java.lang.Object.wait(Native Method)
   -  waiting on java.lang.ref.ReferenceQueue$Lock@6c40b8c0
   at java.base@11.0.13/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
   at app//org.apache.commons.vfs.cache.SoftRefFilesCache$SoftRefReleaseThread.run(SoftRefFilesCache.java:79)

"pool-2-thread-1" prio=5 Id=18 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@24512505
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@24512505
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   ...

"pool-1-thread-1" prio=5 Id=19 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   ...

"pool-1-thread-2" prio=5 Id=20 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   ...

"pool-1-thread-3" prio=5 Id=21 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   ...

"Thread-3" daemon prio=1 Id=22 TIMED_WAITING
   at java.base@11.0.13/java.lang.Thread.sleep(Native Method)
   at app//org.apache.commons.vfs.impl.DefaultFileMonitor.run(DefaultFileMonitor.java:382)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"pool-1-thread-4" prio=5 Id=23 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23c6d9e1
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   ...

"Scheduler1-thread-1" prio=5 Id=25 TIMED_WAITING
   at java.base@11.0.13/java.lang.Thread.sleep(Native Method)
   at app//com.smartfoxserver.bitswarm.util.scheduling.Scheduler.run(Scheduler.java:153)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketWriter::TCP-2" prio=5 Id=26 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@497eaa7b
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@497eaa7b
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at app//com.smartfoxserver.bitswarm.core.SocketWriterV3$TCPWriteRunner.run(SocketWriterV3.java:818)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketWriter::TCP-1" prio=5 Id=27 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@497eaa7b
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@497eaa7b
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at app//com.smartfoxserver.bitswarm.core.SocketWriterV3$TCPWriteRunner.run(SocketWriterV3.java:818)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketWriter::TCP-3" prio=5 Id=28 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@497eaa7b
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@497eaa7b
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at app//com.smartfoxserver.bitswarm.core.SocketWriterV3$TCPWriteRunner.run(SocketWriterV3.java:818)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketWriter::UDP-1" prio=5 Id=29 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@20118d2c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@20118d2c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at app//com.smartfoxserver.bitswarm.core.SocketWriterV3$UDPWriteRunner.run(SocketWriterV3.java:857)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketWriter::UDP-2" prio=5 Id=30 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@20118d2c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@20118d2c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at app//com.smartfoxserver.bitswarm.core.SocketWriterV3$UDPWriteRunner.run(SocketWriterV3.java:857)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketWriter::UDP-3" prio=5 Id=31 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@20118d2c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@20118d2c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at app//com.smartfoxserver.bitswarm.core.SocketWriterV3$UDPWriteRunner.run(SocketWriterV3.java:857)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"DatagramReader" prio=5 Id=24 RUNNABLE (in native)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:357)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:182)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:141)
   at app//com.smartfoxserver.bitswarm.core.DatagramReader.readIncomingDatagrams(DatagramReader.java:123)
   at app//com.smartfoxserver.bitswarm.core.DatagramReader.run(DatagramReader.java:100)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketReader" prio=5 Id=32 TIMED_WAITING
   at java.base@11.0.13/java.lang.Thread.sleep(Native Method)
   at app//com.smartfoxserver.bitswarm.core.SocketReader.run(SocketReader.java:173)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SocketAcceptor-1" prio=5 Id=33 RUNNABLE (in native)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:357)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:182)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:141)
   at app//com.smartfoxserver.bitswarm.core.SocketAcceptor.acceptLoop(SocketAcceptor.java:204)
   at app//com.smartfoxserver.bitswarm.core.SocketAcceptor.run(SocketAcceptor.java:183)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
   ...

"SFSWorker:Sys:1" prio=5 Id=34 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"TomcatRunner" prio=5 Id=35 RUNNABLE (in native)
   at java.base@11.0.13/java.net.PlainSocketImpl.accept0(Native Method)
   at java.base@11.0.13/java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:159)
   at java.base@11.0.13/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
   at java.base@11.0.13/java.net.ServerSocket.implAccept(ServerSocket.java:565)
   at java.base@11.0.13/java.net.ServerSocket.accept(ServerSocket.java:533)
   at org.apache.catalina.core.StandardServer.await(StandardServer.java:605)
   at org.apache.catalina.startup.Catalina.await(Catalina.java:825)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:773)
   ...

"SFSWorker:Ext:1" prio=5 Id=36 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18d924be
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18d924be
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SFSWorker:Ext:2" prio=5 Id=37 RUNNABLE
   at java.management@11.0.13/sun.management.ThreadImpl.getThreadInfo1(Native Method)
   at java.management@11.0.13/sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:197)
   at app//com.smartfoxserver.v2.admin.handlers.requests.DashboardModuleReqHandler.getThreadDump(DashboardModuleReqHandler.java:263)
   at app//com.smartfoxserver.v2.admin.handlers.requests.DashboardModuleReqHandler.handleAdminRequest(DashboardModuleReqHandler.java:233)
   at app//com.smartfoxserver.v2.admin.handlers.requests.BaseAdminModuleReqHandler.handleClientRequest(BaseAdminModuleReqHandler.java:78)
   at app//com.smartfoxserver.v2.extensions.SFSExtension.handleClientRequest(SFSExtension.java:231)
   at app//com.smartfoxserver.v2.controllers.v290.ExtensionReqController.processRequest(ExtensionReqController.java:177)
   at app//com.smartfoxserver.v2.controllers.v290.ExtensionReqController$1.run(ExtensionReqController.java:68)
   ...

"SFSWorker:Ext:3" prio=5 Id=38 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18d924be
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18d924be
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SFSWorker:Sys:2" prio=5 Id=39 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"Catalina-utility-1" prio=1 Id=40 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@24c868ac
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@24c868ac
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   ...

"Catalina-utility-2" prio=1 Id=41 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@24c868ac
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@24c868ac
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
   at java.base@11.0.13/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   ...

"http-nio-8080-exec-1" daemon prio=5 Id=42 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-2" daemon prio=5 Id=43 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-3" daemon prio=5 Id=44 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-4" daemon prio=5 Id=45 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-5" daemon prio=5 Id=46 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-6" daemon prio=5 Id=47 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-7" daemon prio=5 Id=48 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-8" daemon prio=5 Id=49 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-9" daemon prio=5 Id=50 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-exec-10" daemon prio=5 Id=51 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@81ce9f4
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"http-nio-8080-Poller" daemon prio=5 Id=52 RUNNABLE (in native)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:357)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:182)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
   at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:804)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"http-nio-8080-Acceptor" daemon prio=5 Id=53 RUNNABLE (in native)
   at java.base@11.0.13/sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
   at java.base@11.0.13/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:533)
   at java.base@11.0.13/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:285)
   at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:540)
   at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:71)
   at org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:129)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"https-jsse-nio-8443-exec-1" daemon prio=5 Id=54 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-2" daemon prio=5 Id=55 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-3" daemon prio=5 Id=56 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-4" daemon prio=5 Id=57 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-5" daemon prio=5 Id=58 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-6" daemon prio=5 Id=59 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-7" daemon prio=5 Id=60 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-8" daemon prio=5 Id=61 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-9" daemon prio=5 Id=62 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-exec-10" daemon prio=5 Id=63 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a92891c
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
   at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
   ...

"https-jsse-nio-8443-Poller" daemon prio=5 Id=64 RUNNABLE (in native)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:357)
   at java.base@11.0.13/sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:182)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
   at java.base@11.0.13/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
   at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:804)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"https-jsse-nio-8443-Acceptor" daemon prio=5 Id=65 RUNNABLE (in native)
   at java.base@11.0.13/sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
   at java.base@11.0.13/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:533)
   at java.base@11.0.13/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:285)
   at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:540)
   at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:71)
   at org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:129)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SFSWorker:Sys:3" prio=5 Id=67 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"SFSWorker:Sys:4" prio=5 Id=68 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@d45fd26
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)

"WebSocket background processing" daemon prio=5 Id=69 TIMED_WAITING
   at java.base@11.0.13/java.lang.Thread.sleep(Native Method)
   at org.apache.tomcat.websocket.BackgroundProcessManager$WsBackgroundThread.run(BackgroundProcessManager.java:131)

"SFSWorker:Ext:4" prio=5 Id=70 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18d924be
   at java.base@11.0.13/jdk.internal.misc.Unsafe.park(Native Method)
   -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18d924be
   at java.base@11.0.13/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
   at java.base@11.0.13/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
   at java.base@11.0.13/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
   at java.base@11.0.13/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
   at java.base@11.0.13/java.lang.Thread.run(Thread.java:829)


Re: Custom login event not firing when sending SFSObject

Posted: 28 Aug 2024, 20:02
by Lapo
Hi,
class serialization requires that a class with the same name and under the same exact namespace exists on both client and server side. Also it requires special attention for deployment. See here:
https://docs2x.smartfoxserver.com/Advan ... ialization

I find it strange that there're no errors on client or server side. In any case... Unless the class you're trying to send is super complex I would recommend to simplify your life and send a regular SFSObject carrying the extra fields required for your login request. It's much easier to debug and deploy.

Class serialization is cool and everything but it adds extra complexity as well.
Cheers

Re: Custom login event not firing when sending SFSObject

Posted: 28 Aug 2024, 22:00
by AlaskanDruid
Lapo wrote:Hi,
class serialization requires that a class with the same name and under the same exact namespace exists on both client and server side. Also it requires special attention for deployment. See here:
https://docs2x.smartfoxserver.com/Advan ... ialization

I find it strange that there're no errors on client or server side. In any case... Unless the class you're trying to send is super complex I would recommend to simplify your life and send a regular SFSObject carrying the extra fields required for your login request. It's much easier to debug and deploy.

Class serialization is cool and everything but it adds extra complexity as well.
Cheers


That... is beautiful, and I fixed it via your suggestion (broke it down, transferred over, and rebuilt :)

Thank you for the info!