protected long requestNext(TestContext context, String request, long expected) { Async async = context.async(); ResultObject ro = new ResultObject<>(null); vertx.eventBus().send(KeyGeneratorVerticle.SERVICE_NAME, request, result -> { if (result.failed()) { LOGGER.error(result.cause()); ro.setThrowable(result.cause()); async.complete(); } else { try { ro.setResult(checkReply(context, result.result(), expected)); } catch (Exception e) { ro.setThrowable(e); } finally { async.complete(); } } }); async.await(); if (ro.isError()) { createAssertionError(ro.getThrowable()); } return (long) ro.getResult(); }