in aws-iot-device-sdk-java/src/main/java/com/amazonaws/services/iot/client/core/AwsIotConnection.java [321:360]
public void onConnectionSuccess() {
LOGGER.info("Connection successfully established");
connectionStatus = AWSIotConnectionStatus.CONNECTED;
retryTimes = 0;
cancelRetry();
// process offline messages
try {
while (subscribeQueue.size() > 0) {
AWSIotMessage message = subscribeQueue.poll();
subscribeTopic(message);
}
while (unsubscribeQueue.size() > 0) {
AWSIotMessage message = unsubscribeQueue.poll();
unsubscribeTopic(message);
}
while (publishQueue.size() > 0) {
AWSIotMessage message = publishQueue.poll();
publishMessage(message);
}
} catch (AWSIotException | AwsIotRetryableException e) {
// should close the connection if we can't send message when
// connection is good
LOGGER.log(Level.WARNING, "Failed to send queued messages, will disconnect", e);
try {
closeConnection(null);
} catch (AWSIotException ie) {
LOGGER.log(Level.WARNING, "Failed to disconnect", ie);
}
}
client.onConnectionSuccess();
if (connectCallback != null) {
connectCallback.onSuccess();
connectCallback = null;
}
}