From d5b657c6fd6a8390a4504ace8504a3b6eb8f7ffa Mon Sep 17 00:00:00 2001 From: Dan Cunningham Date: Fri, 29 Jul 2022 10:06:48 -0700 Subject: [PATCH] Catch json parsing errors when getting login token. (#13189) Fixes #13181 Signed-off-by: Dan Cunningham --- .../myq/internal/handler/MyQAccountHandler.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/bundles/org.openhab.binding.myq/src/main/java/org/openhab/binding/myq/internal/handler/MyQAccountHandler.java b/bundles/org.openhab.binding.myq/src/main/java/org/openhab/binding/myq/internal/handler/MyQAccountHandler.java index f42615891..9f3cdd29a 100644 --- a/bundles/org.openhab.binding.myq/src/main/java/org/openhab/binding/myq/internal/handler/MyQAccountHandler.java +++ b/bundles/org.openhab.binding.myq/src/main/java/org/openhab/binding/myq/internal/handler/MyQAccountHandler.java @@ -342,12 +342,16 @@ public class MyQAccountHandler extends BaseBridgeHandler implements AccessTokenR ContentResponse tokenResponse = getLoginToken(location, codeVerifier); String loginToken = tokenResponse.getContentAsString(); - AccessTokenResponse accessTokenResponse = gsonLowerCase.fromJson(loginToken, AccessTokenResponse.class); - if (accessTokenResponse == null) { - throw new MyQAuthenticationException("Could not parse token response"); + try { + AccessTokenResponse accessTokenResponse = gsonLowerCase.fromJson(loginToken, AccessTokenResponse.class); + if (accessTokenResponse == null) { + throw new MyQAuthenticationException("Could not parse token response"); + } + getOAuthService().importAccessTokenResponse(accessTokenResponse); + return accessTokenResponse; + } catch (JsonSyntaxException e) { + throw new MyQCommunicationException("Invalid Token Response " + loginToken); } - getOAuthService().importAccessTokenResponse(accessTokenResponse); - return accessTokenResponse; } catch (IOException | ExecutionException | TimeoutException | OAuthException | URISyntaxException e) { throw new MyQCommunicationException(e.getMessage()); }