Skip to content

NullPointerException in Socket.java #727

Closed
@mega-arbuz

Description

@mega-arbuz

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions