Make sure to release the semaphore even if something goes wrong getting messages.

This commit is contained in:
Jon Chambers 2021-03-18 17:45:44 -04:00 committed by Jon Chambers
parent 9778775046
commit 7509520883
1 changed files with 47 additions and 41 deletions

View File

@ -227,7 +227,10 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
}
private void sendNextMessagePage(final boolean cachedMessagesOnly, final CompletableFuture<Void> queueClearedFuture) {
final OutgoingMessageEntityList messages = messagesManager.getMessagesForDevice(account.getUuid(), device.getId(), client.getUserAgent(), cachedMessagesOnly);
try {
final OutgoingMessageEntityList messages = messagesManager
.getMessagesForDevice(account.getUuid(), device.getId(), client.getUserAgent(), cachedMessagesOnly);
final CompletableFuture<?>[] sendFutures = new CompletableFuture[messages.getMessages().size()];
for (int i = 0; i < messages.getMessages().size(); i++) {
@ -280,6 +283,9 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
queueClearedFuture.completeExceptionally(cause);
}
});
} catch (final Exception e) {
queueClearedFuture.completeExceptionally(e);
}
}
@Override