socket.io-client-java
socket.io-client-java copied to clipboard
NullPointerException in Socket.java
Describe the bug Sometimes there is a crash when trying to connect while there is no connectivity (Android device in airplane mode)
To Reproduce
Please fill the following code example: Line 232 in Socket.java
Socket.IO client version: 2.1.0
Java client
public void run() {
// remove the ack from the map (to prevent an actual acknowledgement)
acks.remove(ackId);
// remove the packet from the buffer (if applicable)
Iterator<Packet<JSONArray>> iterator = sendBuffer.iterator();
while (iterator.hasNext()) {
if (iterator.next().id == ackId) {
iterator.remove();
}
}
ackWithTimeout.onTimeout();
}
The crash is happening when accessing iterator.next().id
It happened once on an obfuscated build, this is the stacktrace:
ava.lang.NullPointerException: Attempt to read from field 'int io.socket.parser.Packet.b' on a null object reference in method 'void io.socket.client.Socket$6$1.run()'
at io.socket.client.Socket$6$1.run(SourceFile:4)
at java.util.TimerThread.mainLoop(Timer.java:563)
at java.util.TimerThread.run(Timer.java:513)
Expected behavior Failed connection without crashing
Platform:
- Device: Samsung A52
- OS: Android 12
Additional context Looks like one of the items in the iterator is null
java.lang.NullPointerException · Attempt to read from field 'int io.socket.parser.Packet.id' on a null object reference
Socket.java:232 io.socket.client.Socket$6$1.runTimer.java:562
java.util.TimerThread.mainLoopTimer.java:512
java.util.TimerThread.run
Same I think. Unfortunately, the stack trace is so short, I can't determine the source.