diff --git a/broker/pom.xml b/broker/pom.xml
index 13f96979..cd84247e 100644
--- a/broker/pom.xml
+++ b/broker/pom.xml
@@ -144,8 +144,8 @@
org.eclipse.paho
- mqtt-client
- 0.4.0
+ org.eclipse.paho.client.mqttv3
+ 1.0.1
test
@@ -214,11 +214,11 @@
-
+
diff --git a/broker/src/main/java/org/eclipse/moquette/spi/impl/ProtocolProcessor.java b/broker/src/main/java/org/eclipse/moquette/spi/impl/ProtocolProcessor.java
index c7ac82a2..e5b95fe5 100644
--- a/broker/src/main/java/org/eclipse/moquette/spi/impl/ProtocolProcessor.java
+++ b/broker/src/main/java/org/eclipse/moquette/spi/impl/ProtocolProcessor.java
@@ -172,6 +172,7 @@ class ProtocolProcessor implements EventHandler {
}
m_clientIDs.get(msg.getClientID()).getSession().close(false);
+ LOG.info("Found an existing connection with same client ID <{}>, forced to close", msg.getClientID());
}
ConnectionDescriptor connDescr = new ConnectionDescriptor(msg.getClientID(), session, msg.isCleanSession());
diff --git a/bundle/pom.xml b/bundle/pom.xml
index 83e6a0c9..6784044f 100644
--- a/bundle/pom.xml
+++ b/bundle/pom.xml
@@ -150,8 +150,8 @@
org.eclipse.paho
- mqtt-client
- 0.4.0
+ org.eclipse.paho.client.mqttv3
+ 1.0.1
test
@@ -221,10 +221,10 @@
-
+
diff --git a/tools_scripts/twoClientsWithSameID.groovy b/tools_scripts/twoClientsWithSameID.groovy
new file mode 100644
index 00000000..6655a990
--- /dev/null
+++ b/tools_scripts/twoClientsWithSameID.groovy
@@ -0,0 +1,34 @@
+@GrabResolver(name='Paho', root='https://repo.eclipse.org/content/repositories/paho-releases/')
+@Grab(group='org.eclipse.paho', module='org.eclipse.paho.client.mqttv3', version='1.0.1', ext='jar')
+
+
+import org.eclipse.paho.client.mqttv3.MqttClient
+import org.eclipse.paho.client.mqttv3.MqttMessage
+import org.eclipse.paho.client.mqttv3.MqttException
+import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence
+
+String host = args[0]
+
+String tmpDir = System.getProperty("java.io.tmpdir")
+MqttDefaultFilePersistence dataStore1 = new MqttDefaultFilePersistence(tmpDir + "/client1")
+MqttClient client1 = new MqttClient("tcp://${host}:1883", "ConnectedClient", dataStore1)
+client1.connect()
+println "Client1 connected"
+client1.subscribe("topic", 0)
+println "Client1 subscribed to topic"
+
+sleep(500)
+
+//now connect a second client but with the same ID
+MqttDefaultFilePersistence dataStore2 = new MqttDefaultFilePersistence(tmpDir + "/client2")
+MqttClient client2 = new MqttClient("tcp://${host}:1883", "ConnectedClient", dataStore2)
+client2.connect()
+println "Client2 connected"
+client2.subscribe("topic", 0)
+println "Client2 subscribed to topic"
+
+client1.disconnect()
+println "Client1 disconnected"
+
+client2.disconnect()
+println "Client2 disconnected"
\ No newline at end of file