Skip to content

NullPointerException in Socket.java #727

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions