Merge pull request #7673 from deathbeam/try-catch-ws-message
Prevent WSMessage deserialization failure from closing websocket
This commit is contained in:
@@ -25,6 +25,7 @@
|
|||||||
package net.runelite.client.ws;
|
package net.runelite.client.ws;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.JsonParseException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -154,7 +155,18 @@ public class WSClient extends WebSocketListener implements AutoCloseable
|
|||||||
@Override
|
@Override
|
||||||
public void onMessage(WebSocket webSocket, String text)
|
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))
|
if (message.isParty() && !(message instanceof PartyMessage))
|
||||||
{
|
{
|
||||||
// spoofed message?
|
// spoofed message?
|
||||||
|
|||||||
Reference in New Issue
Block a user