From 936aa92178da071fbe10e673eaa30805bb678147 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Fri, 24 Apr 2020 19:30:38 +0200 Subject: [PATCH] openvidu-android: not crash if clientData is not a JsonObject with specific property --- .../websocket/CustomWebSocket.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java index 12d908d3..48f8d694 100644 --- a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java +++ b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java @@ -316,7 +316,19 @@ public class CustomWebSocket extends AsyncTask impl private RemoteParticipant newRemoteParticipantAux(JSONObject participantJson) throws JSONException { final String connectionId = participantJson.getString(JsonConstants.ID); - final String participantName = new JSONObject(participantJson.getString(JsonConstants.METADATA)).getString("clientData"); + String participantName = ""; + if (participantJson.getString(JsonConstants.METADATA) != null) { + String jsonStringified = participantJson.getString(JsonConstants.METADATA); + try { + JSONObject json = new JSONObject(jsonStringified); + String clientData = json.getString("clientData"); + if (clientData != null) { + participantName = clientData; + } + } catch(JSONException e) { + participantName = jsonStringified; + } + } final RemoteParticipant remoteParticipant = new RemoteParticipant(connectionId, participantName, this.session); this.activity.createRemoteParticipantVideo(remoteParticipant); this.session.createRemotePeerConnection(remoteParticipant.getConnectionId());