From c21a442e033a4e0cc56fda607252876cc9b00e8c Mon Sep 17 00:00:00 2001 From: Yuriy Lytvynchuk Date: Mon, 18 Jul 2022 15:58:00 +0300 Subject: [PATCH] processException extension for tbHttpClient --- .../thingsboard/rule/engine/rest/TbHttpClient.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/TbHttpClient.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/TbHttpClient.java index e035d415ed..d2becf8e3e 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/TbHttpClient.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/TbHttpClient.java @@ -40,6 +40,8 @@ import org.springframework.util.concurrent.ListenableFuture; import org.springframework.util.concurrent.ListenableFutureCallback; import org.springframework.web.client.AsyncRestTemplate; import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.HttpServerErrorException; +import org.springframework.web.client.UnknownHttpStatusCodeException; import org.springframework.web.util.UriComponentsBuilder; import org.thingsboard.rule.engine.api.TbContext; import org.thingsboard.rule.engine.api.TbNodeException; @@ -266,6 +268,16 @@ public class TbHttpClient { metaData.putValue(STATUS, httpClientErrorException.getStatusText()); metaData.putValue(STATUS_CODE, httpClientErrorException.getRawStatusCode() + ""); metaData.putValue(ERROR_BODY, httpClientErrorException.getResponseBodyAsString()); + } else if (e instanceof HttpServerErrorException) { + HttpServerErrorException httpServerErrorException = (HttpServerErrorException) e; + metaData.putValue(STATUS, httpServerErrorException.getStatusText()); + metaData.putValue(STATUS_CODE, httpServerErrorException.getRawStatusCode() + ""); + metaData.putValue(ERROR_BODY, httpServerErrorException.getResponseBodyAsString()); + } else if (e instanceof UnknownHttpStatusCodeException) { + UnknownHttpStatusCodeException unknownHttpStatusCodeException = (UnknownHttpStatusCodeException) e; + metaData.putValue(STATUS, unknownHttpStatusCodeException.getStatusText()); + metaData.putValue(STATUS_CODE, unknownHttpStatusCodeException.getRawStatusCode() + ""); + metaData.putValue(ERROR_BODY, unknownHttpStatusCodeException.getResponseBodyAsString()); } return ctx.transformMsg(origMsg, origMsg.getType(), origMsg.getOriginator(), metaData, origMsg.getData()); }