in aws-iot-device-sdk-java/src/main/java/com/amazonaws/services/iot/client/mqtt/AwsIotMqttMessageListener.java [44:74]
public void onSuccess(IMqttToken token) {
final AWSIotMessage message = (AWSIotMessage) token.getUserContext();
if (message == null) {
return;
}
boolean forceFailure = false;
if (token.getResponse() instanceof MqttSuback) {
MqttSuback subAck = (MqttSuback) token.getResponse();
int qos[] = subAck.getGrantedQos();
for (int i = 0; i < qos.length; i++) {
if (qos[i] == SUB_ACK_RETURN_CODE_FAILURE) {
LOGGER.warning("Request failed: likely due to too many subscriptions or policy violations");
forceFailure = true;
break;
}
}
}
final boolean isSuccess = !forceFailure;
client.scheduleTask(new Runnable() {
@Override
public void run() {
if (isSuccess) {
message.onSuccess();
} else {
message.onFailure();
}
}
});
}