From 76c65ec6db96dedbf46268a513d5091e030efaeb Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Wed, 2 Oct 2013 13:44:52 -0400 Subject: [PATCH] INTEXT-89 Fix Inbound Stop When No Server The reconnection task was not canceled in doStop(). --- spring-integration-mqtt/build.gradle | 4 ++-- .../MqttPahoMessageDrivenChannelAdapter.java | 22 ++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/spring-integration-mqtt/build.gradle b/spring-integration-mqtt/build.gradle index 20a3c1f..5eb1476 100644 --- a/spring-integration-mqtt/build.gradle +++ b/spring-integration-mqtt/build.gradle @@ -14,7 +14,7 @@ apply plugin: 'idea' group = 'org.springframework.integration' repositories { - maven { url 'http://repo.springsource.org/milestone' } + maven { url 'http://repo.springsource.org/snapshot' } maven { url 'http://repo.springsource.org/plugins-release' } } @@ -26,7 +26,7 @@ ext { log4jVersion = '1.2.17' mockitoVersion = '1.9.5' springVersion = '3.1.3.RELEASE' - springIntegrationVersion = '3.0.0.M2' + springIntegrationVersion = '3.0.0.BUILD-SNAPSHOT' idPrefix = 'mqtt' diff --git a/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/inbound/MqttPahoMessageDrivenChannelAdapter.java b/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/inbound/MqttPahoMessageDrivenChannelAdapter.java index 36876c9..b66286f 100644 --- a/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/inbound/MqttPahoMessageDrivenChannelAdapter.java +++ b/spring-integration-mqtt/src/main/java/org/springframework/integration/mqtt/inbound/MqttPahoMessageDrivenChannelAdapter.java @@ -22,6 +22,7 @@ import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; + import org.springframework.integration.Message; import org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory; import org.springframework.integration.mqtt.core.MqttPahoClientFactory; @@ -69,17 +70,28 @@ public class MqttPahoMessageDrivenChannelAdapter extends AbstractMqttMessageDriv @Override protected void doStop() { + this.cancelReconnect(); super.doStop(); try { this.client.unsubscribe(this.getTopic()); - this.client.disconnect(); - this.client.close(); - this.connected = false; - this.client = null; } catch (MqttException e) { - logger.error("Exception while unsubscribing and disconnecting", e); + logger.error("Exception while unsubscribing", e); } + try { + this.client.disconnect(); + } + catch (MqttException e) { + logger.error("Exception while disconnecting", e); + } + try { + this.client.close(); + } + catch (MqttException e) { + logger.error("Exception while closing", e); + } + this.connected = false; + this.client = null; } private void connectAndSubscribe() throws MqttException {