From 341a7baf2f063f43f4dc20dda402f713e71df97f Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Tue, 1 Mar 2022 18:49:32 +0000 Subject: [PATCH] MainService MQTT: unsubscribe only if connected Otherwise we might throw a NPE from inside Paho --- .../acmetensortoys/ctfwstimer/service/MainService.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java index 0c4707d..f27e96b 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java @@ -215,7 +215,7 @@ public class MainService extends Service { // Hang up on an existing connection, if we have one setMSE(MqttServerEvent.MSE_DISCONN); - if (mMqc != null) { + if ((mMqc != null) && mMqc.isConnected()) { mMqc.setCallback(null); // Observationally, it looks like .close() below isn't enough! Deliberately @@ -248,8 +248,12 @@ public class MainService extends Service { } mMqc.unregisterResources(); mMqc = null; - } else { + } else if (mMqc == null) { Log.d("Service", "domqtt no client"); + } else { + Log.d("Service", "domqtt client but not connected"); + mMqc.unregisterResources(); + mMqc = null; } // At this point, prevent the client we just shot down from making any further changes -- 2.50.1