@Override public <U> CompletableFuture<Void> sendAsync(String name, Message<U> message, PartitionSupplier partitionSupplier) { CompletableFuture<Void> future = new CompletableFuture<>(); IMessage azureMessage = getMessageConverter().fromMessage(message, IMessage.class); topicsByName.put(name, azureMessage); getRandom(handlersByQueue.get(name)).map(c -> c.onMessageAsync(azureMessage)); future.complete(null); return future; }
private void notifyExceptionToMessageHandler(Throwable ex, ExceptionPhase phase) { if (!(ex instanceof IllegalStateException && this.getIsClosingOrClosed())) { this.customCodeExecutor.execute(() -> {this.messageHandler.notifyException(ex, phase);}); } }
@Override public <U> CompletableFuture<Void> sendAsync(String name, Message<U> message, PartitionSupplier partitionSupplier) { CompletableFuture<Void> future = new CompletableFuture<>(); IMessage azureMessage = getMessageConverter().fromMessage(message, IMessage.class); topicsByName.put(name, azureMessage); getRandom(handlersByQueue.get(name)).map(c -> c.onMessageAsync(azureMessage)); future.complete(null); return future; }
try { TRACE_LOGGER.debug("Invoking onMessage with message containing sequence number '{}'", message.getSequenceNumber()); onMessageFuture = COMPLETED_FUTURE.thenComposeAsync((v) -> this.messageHandler.onMessageAsync(message), this.customCodeExecutor); } catch (Exception onMessageSyncEx) { TRACE_LOGGER.error("Invocation of onMessage with message containing sequence number '{}' threw unexpected exception", message.getSequenceNumber(), onMessageSyncEx);