Added stopping for subscriptions handlers and for unsubscription handlers

This commit is contained in:
zbeacon 2021-11-08 13:25:03 +02:00 committed by Andrew Shvayka
parent e7c4e76851
commit 06f199b936
4 changed files with 14 additions and 4 deletions

View File

@ -156,9 +156,11 @@ final class MqttClientImpl implements MqttClient {
if (callback != null) { if (callback != null) {
callback.connectionLost(e); callback.connectionLost(e);
} }
pendingSubscriptions.forEach((id, mqttPendingSubscription) -> mqttPendingSubscription.onChannelClosed());
pendingSubscriptions.clear(); pendingSubscriptions.clear();
serverSubscriptions.clear(); serverSubscriptions.clear();
subscriptions.clear(); subscriptions.clear();
pendingServerUnsubscribes.forEach((id, mqttPendingServerUnsubscribes) -> mqttPendingServerUnsubscribes.onChannelClosed());
pendingServerUnsubscribes.clear(); pendingServerUnsubscribes.clear();
qos2PendingIncomingPublishes.clear(); qos2PendingIncomingPublishes.clear();
pendingPublishes.forEach((id, mqttPendingPublish) -> mqttPendingPublish.onChannelClosed()); pendingPublishes.forEach((id, mqttPendingPublish) -> mqttPendingPublish.onChannelClosed());

View File

@ -24,7 +24,7 @@ import io.netty.util.concurrent.Promise;
import java.util.function.Consumer; import java.util.function.Consumer;
final class MqttPendingPublish { final class MqttPendingPublish{
private final int messageId; private final int messageId;
private final Promise<Void> future; private final Promise<Void> future;
@ -99,7 +99,7 @@ final class MqttPendingPublish {
this.pubrelRetransmissionHandler.stop(); this.pubrelRetransmissionHandler.stop();
} }
void onChannelClosed() { void onChannelClosed(){
this.publishRetransmissionHandler.stop(); this.publishRetransmissionHandler.stop();
this.pubrelRetransmissionHandler.stop(); this.pubrelRetransmissionHandler.stop();
} }

View File

@ -23,7 +23,7 @@ import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer; import java.util.function.Consumer;
final class MqttPendingSubscription { final class MqttPendingSubscription{
private final Promise<Void> future; private final Promise<Void> future;
private final String topic; private final String topic;
@ -99,4 +99,8 @@ final class MqttPendingSubscription {
return once; return once;
} }
} }
void onChannelClosed(){
this.retransmissionHandler.stop();
}
} }

View File

@ -21,7 +21,7 @@ import io.netty.util.concurrent.Promise;
import java.util.function.Consumer; import java.util.function.Consumer;
final class MqttPendingUnsubscription { final class MqttPendingUnsubscription{
private final Promise<Void> future; private final Promise<Void> future;
private final String topic; private final String topic;
@ -52,4 +52,8 @@ final class MqttPendingUnsubscription {
void onUnsubackReceived(){ void onUnsubackReceived(){
this.retransmissionHandler.stop(); this.retransmissionHandler.stop();
} }
void onChannelClosed(){
this.retransmissionHandler.stop();
}
} }