From bb77f732eb2eb071ee164488d1b4ff02c9c0ad8a Mon Sep 17 00:00:00 2001 From: Simon Stewart Date: Tue, 20 Feb 2018 23:47:35 +0000 Subject: [PATCH] Remove gson reference from ExternalSessionKey --- .../grid/internal/ExternalSessionKey.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/java/server/src/org/openqa/grid/internal/ExternalSessionKey.java b/java/server/src/org/openqa/grid/internal/ExternalSessionKey.java index 847b3a0dc500d..2b558c0c379e6 100644 --- a/java/server/src/org/openqa/grid/internal/ExternalSessionKey.java +++ b/java/server/src/org/openqa/grid/internal/ExternalSessionKey.java @@ -17,11 +17,13 @@ package org.openqa.grid.internal; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.google.gson.JsonSyntaxException; +import static org.openqa.selenium.json.Json.MAP_TYPE; import org.openqa.grid.internal.exception.NewSessionException; +import org.openqa.selenium.json.Json; +import org.openqa.selenium.json.JsonException; + +import java.util.Map; public class ExternalSessionKey { @@ -100,19 +102,19 @@ public static ExternalSessionKey fromWebDriverRequest(String path) { */ public static ExternalSessionKey fromJsonResponseBody(String responseBody) { try { - JsonObject json = new JsonParser().parse(responseBody).getAsJsonObject(); - if (json.has("sessionId") && !json.get("sessionId").isJsonNull()) { - return new ExternalSessionKey(json.get("sessionId").getAsString()); + Map json = new Json().toType(responseBody, MAP_TYPE); + if (json.get("sessionId") instanceof String) { + return new ExternalSessionKey((String) json.get("sessionId")); } // W3C response - if (json.has("value") && json.get("value").isJsonObject()) { - JsonObject value = json.getAsJsonObject("value"); - if (value.has("sessionId") && !value.get("sessionId").isJsonNull()) { - return new ExternalSessionKey(value.get("sessionId").getAsString()); + if (json.get("value") instanceof Map) { + Map value = (Map) json.get("value"); + if (value.get("sessionId") instanceof String) { + return new ExternalSessionKey((String) value.get("sessionId")); } } - } catch (JsonSyntaxException e) { + } catch (JsonException | ClassCastException e) { return null; }