Skip to content

Commit b5d4639

Browse files
author
Ranjan Dasgupta
authored
Merge pull request #741 from babymotte/issue-740
fixed potential nullpointer in CommsCallback
2 parents d959212 + 5ee8329 commit b5d4639

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

  • org.eclipse.paho.client.mqttv3/src/main/java/org/eclipse/paho/client/mqttv3/internal

org.eclipse.paho.client.mqttv3/src/main/java/org/eclipse/paho/client/mqttv3/internal/CommsCallback.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,9 +501,14 @@ protected boolean deliverMessage(String topicName, int messageId, MqttMessage aM
501501
Enumeration<String> keys = callbacks.keys();
502502
while (keys.hasMoreElements()) {
503503
String topicFilter = (String)keys.nextElement();
504+
// callback may already have been removed in the meantime, so a null check is necessary
505+
IMqttMessageListener callback = callbacks.get(topicFilter);
506+
if(callback == null) {
507+
continue;
508+
}
504509
if (MqttTopic.isMatched(topicFilter, topicName)) {
505510
aMessage.setId(messageId);
506-
((IMqttMessageListener)(callbacks.get(topicFilter))).messageArrived(topicName, aMessage);
511+
((IMqttMessageListener)callback).messageArrived(topicName, aMessage);
507512
delivered = true;
508513
}
509514
}

0 commit comments

Comments
 (0)