From a1a8925ae40b2e7f5994047a1a237302449c73c0 Mon Sep 17 00:00:00 2001 From: ruben Date: Mon, 2 Jan 2023 18:42:24 +0000 Subject: [PATCH] Revert "Remove dependency on org.json:json" This reverts commit 490756c79e923d6784defce96c2b0b9f8c6aba24. --- pom.xml | 6 ++++++ .../telegram/abilitybots/api/objects/Stats.java | 1 + telegrambots-meta/pom.xml | 4 ++++ .../exceptions/TelegramApiRequestException.java | 16 +++++++++++++++- telegrambots/pom.xml | 4 ++++ .../updatesreceivers/DefaultBotSession.java | 11 ++++++++--- .../telegram/telegrambots/util/WebhookUtils.java | 9 ++++----- 7 files changed, 42 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index ef19c086..f2bcf5e2 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,7 @@ 4.8.1 2.14.0 2.14.0 + 20220924 2.0.3 2.1.1 1.18.24 @@ -134,6 +135,11 @@ slf4j-api ${slf4j.version} + + org.json + json + ${json.version} + jakarta.annotation diff --git a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Stats.java b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Stats.java index 9abc4819..43b6b350 100644 --- a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Stats.java +++ b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Stats.java @@ -3,6 +3,7 @@ package org.telegram.abilitybots.api.objects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; +import org.json.JSONPropertyIgnore; import java.io.Serializable; import java.util.Objects; diff --git a/telegrambots-meta/pom.xml b/telegrambots-meta/pom.xml index 426db1b6..6e9ff61e 100644 --- a/telegrambots-meta/pom.xml +++ b/telegrambots-meta/pom.xml @@ -90,6 +90,10 @@ com.google.guava guava + + org.json + json + org.projectlombok lombok diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/exceptions/TelegramApiRequestException.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/exceptions/TelegramApiRequestException.java index 8add108b..d2f69e60 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/exceptions/TelegramApiRequestException.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/exceptions/TelegramApiRequestException.java @@ -18,6 +18,7 @@ package org.telegram.telegrambots.meta.exceptions; import com.fasterxml.jackson.databind.ObjectMapper; +import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.telegram.telegrambots.meta.api.objects.ApiResponse; @@ -47,7 +48,20 @@ public class TelegramApiRequestException extends TelegramApiException { super(message); } - public TelegramApiRequestException(String message, ApiResponse response) { + public TelegramApiRequestException(String message, JSONObject object) { + super(message); + apiResponse = object.getString(ERRORDESCRIPTIONFIELD); + errorCode = object.getInt(ERRORCODEFIELD); + if (object.has(PARAMETERSFIELD)) { + try { + parameters = OBJECT_MAPPER.readValue(object.getJSONObject(PARAMETERSFIELD).toString(), ResponseParameters.class); + } catch (IOException e) { + log.error(e.getLocalizedMessage(), e); + } + } + } + + public TelegramApiRequestException(String message, ApiResponse response) { super(message); apiResponse = response.getErrorDescription(); errorCode = response.getErrorCode(); diff --git a/telegrambots/pom.xml b/telegrambots/pom.xml index 48a199ae..92aa0371 100644 --- a/telegrambots/pom.xml +++ b/telegrambots/pom.xml @@ -152,6 +152,10 @@ + + org.json + json + org.apache.httpcomponents httpclient diff --git a/telegrambots/src/main/java/org/telegram/telegrambots/updatesreceivers/DefaultBotSession.java b/telegrambots/src/main/java/org/telegram/telegrambots/updatesreceivers/DefaultBotSession.java index 6848f391..fec34b3e 100644 --- a/telegrambots/src/main/java/org/telegram/telegrambots/updatesreceivers/DefaultBotSession.java +++ b/telegrambots/src/main/java/org/telegram/telegrambots/updatesreceivers/DefaultBotSession.java @@ -8,6 +8,7 @@ import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.util.EntityUtils; +import org.json.JSONException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.telegram.telegrambots.bots.DefaultBotOptions; @@ -255,9 +256,13 @@ public class DefaultBotSession implements BotSession { lock.wait(500); } } else { - List updates = request.deserializeResponse(responseContent); - backOff.reset(); - return updates; + try { + List updates = request.deserializeResponse(responseContent); + backOff.reset(); + return updates; + } catch (JSONException e) { + log.error("Error deserializing update: " + responseContent, e); + } } } catch (SocketException | InvalidObjectException | TelegramApiRequestException e) { log.error(e.getLocalizedMessage(), e); diff --git a/telegrambots/src/main/java/org/telegram/telegrambots/util/WebhookUtils.java b/telegrambots/src/main/java/org/telegram/telegrambots/util/WebhookUtils.java index 2a95601d..3f26566f 100644 --- a/telegrambots/src/main/java/org/telegram/telegrambots/util/WebhookUtils.java +++ b/telegrambots/src/main/java/org/telegram/telegrambots/util/WebhookUtils.java @@ -1,7 +1,5 @@ package org.telegram.telegrambots.util; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Strings; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; @@ -11,6 +9,8 @@ import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.util.EntityUtils; +import org.json.JSONArray; +import org.json.JSONException; import org.telegram.telegrambots.Constants; import org.telegram.telegrambots.bots.DefaultAbsSender; import org.telegram.telegrambots.bots.DefaultBotOptions; @@ -29,7 +29,6 @@ import static org.telegram.telegrambots.Constants.SOCKET_TIMEOUT; public final class WebhookUtils { private static final ContentType TEXT_PLAIN_CONTENT_TYPE = ContentType.create("text/plain", StandardCharsets.UTF_8); - private static final ObjectMapper objectMapper = new ObjectMapper(); private WebhookUtils() { @@ -67,7 +66,7 @@ public final class WebhookUtils { builder.addTextBody(SetWebhook.MAXCONNECTIONS_FIELD, setWebhook.getMaxConnections().toString(), TEXT_PLAIN_CONTENT_TYPE); } if (setWebhook.getAllowedUpdates() != null) { - builder.addTextBody(SetWebhook.ALLOWEDUPDATES_FIELD, objectMapper.writeValueAsString(setWebhook.getAllowedUpdates()), TEXT_PLAIN_CONTENT_TYPE); + builder.addTextBody(SetWebhook.ALLOWEDUPDATES_FIELD, new JSONArray(setWebhook.getAllowedUpdates()).toString(), TEXT_PLAIN_CONTENT_TYPE); } if (setWebhook.getIpAddress() != null) { builder.addTextBody(SetWebhook.IPADDRESS_FIELD, setWebhook.getIpAddress(), TEXT_PLAIN_CONTENT_TYPE); @@ -96,7 +95,7 @@ public final class WebhookUtils { throw new TelegramApiRequestException("Error setting webhook:" + responseContent); } } - } catch (JsonProcessingException e) { + } catch (JSONException e) { throw new TelegramApiRequestException("Error deserializing setWebhook method response", e); } catch (IOException e) { throw new TelegramApiRequestException("Error executing setWebook method", e);