eclipse / paho.mqtt.java

Eclipse Paho Java MQTT client library. Paho is an Eclipse IoT project.
https://eclipse.org/paho
Other
2.12k stars 883 forks source link

calling setActionCallback on token returned by MqtttAsyncClient.connect is ineffective #939

Open andreish opened 2 years ago

andreish commented 2 years ago

Please fill out the form below before submitting, thank you!

sample pom.xml

        <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.mqttv5.client</artifactId>
            <version>1.2.5</version>
        </dependency>

sample code

token = mqttClient.connect(getOptions()
MemoryPersistence persistence = new MemoryPersistence();
mqttClient = new MqttAsyncClient(broker, clientId, persistence);
IMqttToken  token = mqttClient.connect(getOptions(), null, null);
token.setActionCallback(listener) 

expected result: is listener.onSuccess is called when connection is complete

actual result : no call is perrormed.

note using :

 IMqttToken  token = mqttClient.connect(getOptions(), null, listener); 

will result in listener.onSuccess being called.

see also : code comment from IMqttToken :

    /**
     * Register a listener to be notified when an action completes.
     * <p>Once a listener is registered it will be invoked when the action the token
     * is associated with either succeeds or fails.
     * </p>
     * @param listener to be invoked once the action completes
     */
        public void setActionCallback(MqttActionListener listener);