I think there may be an issue within jWebSocketClient v2.5 (jetty 12.1 based);
when the client applicaiton is closed after the connection to the server is lost - the client application process keeps running.
I've attached test apps and an SQLite database, and would be grateful if someone can give this a go to see if I'm missing something or if there is indeed something amiss in jWebSocketClient v2.5. Thanks!
To recreate the problem:
1. Open the jRDC2SQLite server app and adjust the database path in RDCConnector.Initialize to suit where you put the database (attached in SQLIteTestDB.zip)
2. Run the server in Debug mode.
3. Run the client app (attached in BasicJRDC2ClientTest.zip), in Release mode.
4. Click the 'Connect Websocket' button
At this point if you check what java apps are running (using ...\java\bin\jps -l) you'll get something like:
5. Stop the jRDC server app (immitating a server end connection issue).
6. Close the client app (just close the form). The client app process remains:
If I run the same tests using jWebSocketClient 2.1, then the client process closes as Id expect. It's just when using the new jWebSocketClient 2.5 the process keeps running.
I thought it might be something to do with the two timers in WSPushService but disabling them in WSPushService.Close makes no difference.
I've shared a video of this issue here:
Many thanks!
when the client applicaiton is closed after the connection to the server is lost - the client application process keeps running.
I've attached test apps and an SQLite database, and would be grateful if someone can give this a go to see if I'm missing something or if there is indeed something amiss in jWebSocketClient v2.5. Thanks!
To recreate the problem:
1. Open the jRDC2SQLite server app and adjust the database path in RDCConnector.Initialize to suit where you put the database (attached in SQLIteTestDB.zip)
2. Run the server in Debug mode.
3. Run the client app (attached in BasicJRDC2ClientTest.zip), in Release mode.
4. Click the 'Connect Websocket' button
At this point if you check what java apps are running (using ...\java\bin\jps -l) you'll get something like:
D:\Java\jdk-17.0.16\bin>jps -l
16976 b4j.example.main
22676 jdk.jcmd/sun.tools.jps.Jps
9480 b4j.example.main
17308 D:\B4J\JServer5Tests\Basic\Client\Objects\BasicJRDC2ClientTest.jar
5. Stop the jRDC server app (immitating a server end connection issue).
D:\Java\jdk-17.0.16\bin>jps -l
5204 jdk.jcmd/sun.tools.jps.Jps
17308 D:\B4J\JServer5Tests\Basic\Client\Objects\BasicJRDC2ClientTest.jar
6. Close the client app (just close the form). The client app process remains:
D:\Java\jdk-17.0.16\bin>jps -l
10388 jdk.jcmd/sun.tools.jps.Jps
17308 D:\B4J\JServer5Tests\Basic\Client\Objects\BasicJRDC2ClientTest.jar
If I run the same tests using jWebSocketClient 2.1, then the client process closes as Id expect. It's just when using the new jWebSocketClient 2.5 the process keeps running.
I thought it might be something to do with the two timers in WSPushService but disabling them in WSPushService.Close makes no difference.
I've shared a video of this issue here:
Many thanks!