]> git.basschouten.com Git - openhab-addons.git/commitdiff
[telegram] Fixes exceptions that stop rules/actions from finishing (#11215)
authorMatthew Skinner <matt@pcmus.com>
Sat, 11 Sep 2021 11:34:23 +0000 (21:34 +1000)
committerGitHub <noreply@github.com>
Sat, 11 Sep 2021 11:34:23 +0000 (13:34 +0200)
* reorder channel updates.

Signed-off-by: Matthew Skinner <matt@pcmus.com>
* catch exceptions.

Signed-off-by: Matthew Skinner <matt@pcmus.com>
* Spotless fixed

Signed-off-by: Matthew Skinner <matt@pcmus.com>
* increase timeout.

Signed-off-by: Matthew Skinner <matt@pcmus.com>
* Fix NPE in action from causing issues.

Signed-off-by: Matthew Skinner <matt@pcmus.com>
* fix logger.

Signed-off-by: Matthew Skinner <matt@pcmus.com>
bundles/org.openhab.binding.telegram/src/main/java/org/openhab/binding/telegram/internal/TelegramHandler.java
bundles/org.openhab.binding.telegram/src/main/java/org/openhab/binding/telegram/internal/action/TelegramActions.java

index c47df21ddce7ba9a78be7c37e28dad4c3dafd8e6..5126d1c253a46278864099041997ce72a2e2660d 100644 (file)
@@ -156,7 +156,7 @@ public class TelegramHandler extends BaseThingHandler {
         }
 
         OkHttpClient.Builder prepareConnection = new OkHttpClient.Builder().connectTimeout(75, TimeUnit.SECONDS)
-                .readTimeout(75, TimeUnit.SECONDS);
+                .writeTimeout(75, TimeUnit.SECONDS).readTimeout(75, TimeUnit.SECONDS);
 
         String proxyHost = config.getProxyHost();
         Integer proxyPort = config.getProxyPort();
@@ -324,20 +324,20 @@ public class TelegramHandler extends BaseThingHandler {
                             update.callbackQuery().data());
                 }
             }
-            updateChannel(LASTMESSAGETEXT, lastMessageText != null ? new StringType(lastMessageText) : UnDefType.NULL);
+            updateChannel(CHATID, chatId != null ? new StringType(chatId.toString()) : UnDefType.NULL);
+            updateChannel(REPLYID, replyId != null ? new StringType(replyId) : UnDefType.NULL);
             updateChannel(LASTMESSAGEURL, lastMessageURL != null ? new StringType(lastMessageURL) : UnDefType.NULL);
-            updateChannel(LASTMESSAGEDATE, lastMessageDate != null
-                    ? new DateTimeType(
-                            ZonedDateTime.ofInstant(Instant.ofEpochSecond(lastMessageDate.intValue()), ZoneOffset.UTC))
-                    : UnDefType.NULL);
             updateChannel(LASTMESSAGENAME, (lastMessageFirstName != null || lastMessageLastName != null)
                     ? new StringType((lastMessageFirstName != null ? lastMessageFirstName + " " : "")
                             + (lastMessageLastName != null ? lastMessageLastName : ""))
                     : UnDefType.NULL);
             updateChannel(LASTMESSAGEUSERNAME,
                     lastMessageUsername != null ? new StringType(lastMessageUsername) : UnDefType.NULL);
-            updateChannel(CHATID, chatId != null ? new StringType(chatId.toString()) : UnDefType.NULL);
-            updateChannel(REPLYID, replyId != null ? new StringType(replyId) : UnDefType.NULL);
+            updateChannel(LASTMESSAGETEXT, lastMessageText != null ? new StringType(lastMessageText) : UnDefType.NULL);
+            updateChannel(LASTMESSAGEDATE, lastMessageDate != null
+                    ? new DateTimeType(
+                            ZonedDateTime.ofInstant(Instant.ofEpochSecond(lastMessageDate.intValue()), ZoneOffset.UTC))
+                    : UnDefType.NULL);
         }
         return UpdatesListener.CONFIRMED_UPDATES_ALL;
     }
index f25c42eb8fbe0b268638a0dadeadf006daba4260..e1a19e3560b7fad81e68954dc2c8eb93264e137b 100644 (file)
@@ -134,6 +134,10 @@ public class TelegramActions implements ThingActions {
                 }
             }
             Integer messageId = localHandler.removeMessageId(chatId, replyId);
+            if (messageId == null) {
+                logger.warn("messageId could not be found for chatId {} and replyId {}", chatId, replyId);
+                return false;
+            }
             logger.debug("remove messageId {} for chatId {} and replyId {}", messageId, chatId, replyId);
 
             EditMessageReplyMarkup editReplyMarkup = new EditMessageReplyMarkup(chatId, messageId.intValue())
@@ -239,7 +243,12 @@ public class TelegramActions implements ThingActions {
                     logger.warn("replyId {} must not contain spaces. ReplyMarkup will be ignored.", replyId);
                 }
             }
-            SendResponse retMessage = localHandler.execute(sendMessage);
+            SendResponse retMessage = null;
+            try {
+                retMessage = localHandler.execute(sendMessage);
+            } catch (Exception e) {
+                logger.warn("Exception occured whilst sending message:{}", e.getMessage());
+            }
             if (!evaluateResponse(retMessage)) {
                 return false;
             }