You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
It's possible to get NPE in reconnectBlocking(), due to a race with previously running client connection thread.
The race happens due to closeLatch countdown called before connectReadThread is set to null in run
connectReadThread set to null at WebSocketClient.java:526
while countdown is called in a callback in engine.closeConnectionWebSocketClient.java:524
To Reproduce
Steps to reproduce the behavior:
Setup WS server
Connect
Call reconnectBlocking() in a loop until NPE
Expected behavior
No NPE on reconnectBlocking()
Debug log
java.lang.NullPointerException: Cannot invoke "java.lang.Thread.start()" because "this.connectReadThread" is null
at org.java_websocket.client.WebSocketClient.connect(WebSocketClient.java:376)
at org.java_websocket.client.WebSocketClient.connectBlocking(WebSocketClient.java:386)
at org.java_websocket.client.WebSocketClient.reconnectBlocking(WebSocketClient.java:328)
at org.web3j.protocol.websocket.WebSocketService.connectToWebSocket(WebSocketService.java:140)
Environment(please complete the following information):
Version used: 1.5.4
Java version: 17
Operating System and version: GCP, Linux container
While was trying to reproduce I identified another bug with WebSocketClient#closeBlocking, it sometimes gets stuck on closeLatch.await(), I'm going to create another bug for that.
Activity
Xander-Polishchuk commentedon Oct 17, 2023
While was trying to reproduce I identified another bug with
WebSocketClient#closeBlocking, it sometimes gets stuck oncloseLatch.await(), I'm going to create another bug for that.