@Override public void onMessage(MessageQueueLoop loop, Message message) { Number id = message.getNumber(CORRELATION_ID); MessagePromise promise; if (id == null || (promise = messageTracking.remove(id.longValue())) == null) { serverSentMessageNotifier.notify(message); } else { promise.setResponse(message); } }
private MessageFuture send(MessagePromise promise) { Objects.requireNonNull(promise); long id = ID.incrementAndGet(); promise.message().put(MESSAGE_ID, id); messageTracking.put(id, promise); clientHandler.sendMessage(promise); return promise; }