Skip to content

Commit fb58715

Browse files
committed
fix: Run response decorators inside interceptor ScopedValue scope
1 parent 9b08035 commit fb58715

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

src/main/java/com/retailsvc/http/internal/DispatchHandler.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,17 @@ public void handle(HttpExchange exchange) throws IOException {
3737
Request request = CURRENT.get();
3838
RequestHandler handler = handlers.get(request.operationId());
3939
Response response = invoke(0, request, handler);
40-
for (ResponseDecorator decorator : decorators) {
41-
response = decorator.decorate(request, response);
42-
}
4340
exchange.setAttribute(RESPONSE_ATTR, response);
4441
renderer.render(exchange, response);
4542
}
4643

4744
private Response invoke(int idx, Request request, RequestHandler handler) {
4845
if (idx == interceptors.size()) {
49-
return handler.handle(request);
46+
Response response = handler.handle(request);
47+
for (ResponseDecorator decorator : decorators) {
48+
response = decorator.decorate(request, response);
49+
}
50+
return response;
5051
}
5152
return interceptors.get(idx).around(request, () -> invoke(idx + 1, request, handler));
5253
}

0 commit comments

Comments
 (0)