Closed
Description
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