Prevent WSMessage deserialization failure from closing websocket
As messages that are serialized and deserialized are purely option and can vary between source and destination, simply catch deserialization failure to prevent OkHttp from closing websocket. Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
package net.runelite.client.ws;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonParseException;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
@@ -154,7 +155,18 @@ public class WSClient extends WebSocketListener implements AutoCloseable
|
||||
@Override
|
||||
public void onMessage(WebSocket webSocket, String text)
|
||||
{
|
||||
final WebsocketMessage message = gson.fromJson(text, WebsocketMessage.class);
|
||||
final WebsocketMessage message;
|
||||
|
||||
try
|
||||
{
|
||||
message = gson.fromJson(text, WebsocketMessage.class);
|
||||
}
|
||||
catch (JsonParseException e)
|
||||
{
|
||||
log.debug("Failed to deserialize message", e);
|
||||
return;
|
||||
}
|
||||
|
||||
if (message.isParty() && !(message instanceof PartyMessage))
|
||||
{
|
||||
// spoofed message?
|
||||
|
||||
Reference in New Issue
Block a user