]> git.basschouten.com Git - openhab-addons.git/commitdiff
[mqtt] connectionStateChanged(CONNECTED) called twice (#12200)
authorjimtng <2554958+jimtng@users.noreply.github.com>
Fri, 4 Feb 2022 22:32:56 +0000 (08:32 +1000)
committerGitHub <noreply@github.com>
Fri, 4 Feb 2022 22:32:56 +0000 (23:32 +0100)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/handler/AbstractBrokerHandler.java
bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/handler/BrokerHandler.java

index 6eb28d78233a86b80557e9ce0a641f2bf6b09d56..f68f65f69e987dc8815d166297a7ece3a23dfbdb 100644 (file)
@@ -114,8 +114,6 @@ public abstract class AbstractBrokerHandler extends BaseBridgeHandler implements
         }).thenAccept(v -> {
             if (!v) {
                 connectionStateChanged(MqttConnectionState.DISCONNECTED, new TimeoutException("Timeout"));
-            } else {
-                connectionStateChanged(MqttConnectionState.CONNECTED, null);
             }
         });
         connectionFuture.complete(connection);
index d7cf35686a639a65f9e2b8c8479b2cc7df441a90..c48da5ccd09743cb16987a59bdf0c2e426fe1af2 100644 (file)
@@ -59,19 +59,18 @@ public class BrokerHandler extends AbstractBrokerHandler implements PinnedCallba
     @Override
     public void connectionStateChanged(MqttConnectionState state, @Nullable Throwable error) {
         super.connectionStateChanged(state, error);
-        // Store generated client ID if none was set by the user
         final MqttBrokerConnection connection = this.connection;
-        String clientID = config.clientID;
         if (connection != null && state == MqttConnectionState.CONNECTED) {
+            String clientID = config.clientID;
             if (clientID == null || clientID.isBlank()) {
+                // Store generated client ID if none was set by the user
                 clientID = connection.getClientId();
                 config.clientID = clientID;
                 Configuration editConfig = editConfiguration();
                 editConfig.put("clientid", clientID);
                 updateConfiguration(editConfig);
-            } else {
-                publish(config.birthTopic, config.birthMessage, config.birthRetain);
             }
+            publish(config.birthTopic, config.birthMessage, config.birthRetain);
         }
     }