From e520547dcab43398887b46e3fe6be72834a28944 Mon Sep 17 00:00:00 2001 From: Clement Escoffier Date: Fri, 12 Sep 2014 08:15:56 +0200 Subject: [PATCH] Apply fix for #347 in the vertx engine Signed-off-by: Clement Escoffier --- .../java/org/wisdom/framework/vertx/HttpHandler.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/extensions/wisdom-vertx-engine/src/main/java/org/wisdom/framework/vertx/HttpHandler.java b/extensions/wisdom-vertx-engine/src/main/java/org/wisdom/framework/vertx/HttpHandler.java index d61a5d43b..96fbc313e 100644 --- a/extensions/wisdom-vertx-engine/src/main/java/org/wisdom/framework/vertx/HttpHandler.java +++ b/extensions/wisdom-vertx-engine/src/main/java/org/wisdom/framework/vertx/HttpHandler.java @@ -165,8 +165,8 @@ private Result invoke(Route route) { private void handleAsyncResult( final ContextFromVertx context, final RequestFromVertx request, - AsyncResult result) { - Future future = accessor.getSystem().dispatchResultWithContext(result.callable(), context); + final AsyncResult asyncResult) { + Future future = accessor.getSystem().dispatchResultWithContext(asyncResult.callable(), context); future.onComplete(new OnComplete() { /** * Called when the result is computed. It writes the response. @@ -180,6 +180,13 @@ public void onComplete(Throwable failure, Result result) { writeResponse(context, request, Results.internalServerError(failure), false, true); } else { // We got a result, write it here. + // Merge the headers of the initial result and the async results. + final Map headers = result.getHeaders(); + for (Map.Entry header : asyncResult.getHeaders().entrySet()) { + if (! headers.containsKey(header.getKey())) { + headers.put(header.getKey(), header.getValue()); + } + } writeResponse(context, request, result, true, true); } }