eventBus.sendWithTimeout(inAddress, new JsonObject().putString("action", "disconnect"), 5000, new Handler<AsyncResult<Message<Boolean>>>() {
@Override
public void handle(AsyncResult<Message<Boolean>> result) {
if (result.failed()) {
ReplyException failure = (ReplyException) result.cause();
if (failure.failureType().equals(ReplyFailure.RECIPIENT_FAILURE)) {
log.warn(String.format("%s - Failed to disconnect from %s", DefaultOutputConnection.this, context.target()), result.cause());
new DefaultFutureResult<Void>(failure).setHandler(doneHandler);
} else if (failure.failureType().equals(ReplyFailure.NO_HANDLERS)) {
log.info(String.format("%s - Disconnected from %s", DefaultOutputConnection.this, context.target()));
new DefaultFutureResult<Void>((Void) null).setHandler(doneHandler);