+ if (result.isPresent()) {
+ envelope = result.get();
+ } else {
+ // Received indicator that server queue is empty
+ hasCaughtUpWithOldMessages = true;
+
+ if (queuedActions != null) {
+ for (HandleAction action : queuedActions) {
+ try {
+ action.execute(this);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ queuedActions.clear();
+ queuedActions = null;
+ }
+
+ // Continue to wait another timeout for new messages
+ continue;
+ }