socket.io-client-java icon indicating copy to clipboard operation
socket.io-client-java copied to clipboard

NullPointerException in Socket.java

Open mega-arbuz opened this issue 3 years ago • 2 comments

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

mega-arbuz avatar Nov 03 '22 16:11 mega-arbuz

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.

rmirabelle avatar Mar 11 '23 17:03 rmirabelle