fix: ensure the payload format is valid
This commit should prevent some NPE issues encountered after the parsing of the packet. Related: - https://github.com/socketio/socket.io-client-java/issues/642 - https://github.com/socketio/socket.io-client-java/issues/609 - https://github.com/socketio/socket.io-client-java/issues/505
This commit is contained in:
@@ -326,10 +326,14 @@ public class Manager extends Emitter {
|
||||
@Override
|
||||
public void call(Object... objects) {
|
||||
Object data = objects[0];
|
||||
if (data instanceof String) {
|
||||
Manager.this.ondata((String)data);
|
||||
} else if (data instanceof byte[]) {
|
||||
Manager.this.ondata((byte[])data);
|
||||
try {
|
||||
if (data instanceof String) {
|
||||
Manager.this.decoder.add((String) data);
|
||||
} else if (data instanceof byte[]) {
|
||||
Manager.this.decoder.add((byte[]) data);
|
||||
}
|
||||
} catch (DecodingException e) {
|
||||
logger.fine("error while decoding the packet: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}));
|
||||
@@ -353,22 +357,6 @@ public class Manager extends Emitter {
|
||||
});
|
||||
}
|
||||
|
||||
private void ondata(String data) {
|
||||
try {
|
||||
this.decoder.add(data);
|
||||
} catch (DecodingException e) {
|
||||
this.onerror(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void ondata(byte[] data) {
|
||||
try {
|
||||
this.decoder.add(data);
|
||||
} catch (DecodingException e) {
|
||||
this.onerror(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void ondecoded(Packet packet) {
|
||||
this.emit(EVENT_PACKET, packet);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user