Skip to content

Commit 9ab015d

Browse files
committed
Fix case where Recursively calling the same method causes StackOverFlow
1 parent 240f82f commit 9ab015d

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

  • org.eclipse.paho.mqttv5.client/src/main/java/org/eclipse/paho/mqttv5/client

org.eclipse.paho.mqttv5.client/src/main/java/org/eclipse/paho/mqttv5/client/MqttClient.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,16 @@ public IMqttToken subscribe(String topicFilter, int qos, IMqttMessageListener me
522522

523523
public IMqttToken subscribe(String[] topicFilters, int[] qos, IMqttMessageListener[] messageListeners)
524524
throws MqttException {
525-
return this.subscribe(topicFilters, qos, messageListeners);
525+
if (topicFilters.length != qos.length) {
526+
throw new MqttException(MqttClientException.REASON_CODE_UNEXPECTED_ERROR);
527+
}
528+
529+
MqttSubscription[] subscriptions = new MqttSubscription[topicFilters.length];
530+
for (int i = 0; i < topicFilters.length; ++i) {
531+
subscriptions[i] = new MqttSubscription(topicFilters[i], qos[i]);
532+
}
533+
534+
return this.subscribe(subscriptions, messageListeners);
526535
}
527536

528537
public IMqttToken subscribe(MqttSubscription[] subscriptions, IMqttMessageListener[] messageListeners) throws MqttException {

0 commit comments

Comments
 (0)