From 890a36afacf577b1077ffb77e0ce815c692d9c31 Mon Sep 17 00:00:00 2001 From: Paul Carter-Brown Date: Mon, 17 Jul 2023 13:16:01 +0200 Subject: [PATCH] Fix for #34632 to prevent race condition on adding headers if already added --- .../server/vertx/ResteasyReactiveOutputStream.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/independent-projects/resteasy-reactive/server/vertx/src/main/java/org/jboss/resteasy/reactive/server/vertx/ResteasyReactiveOutputStream.java b/independent-projects/resteasy-reactive/server/vertx/src/main/java/org/jboss/resteasy/reactive/server/vertx/ResteasyReactiveOutputStream.java index 701d64586253f..6a2fcf0a3ea95 100644 --- a/independent-projects/resteasy-reactive/server/vertx/src/main/java/org/jboss/resteasy/reactive/server/vertx/ResteasyReactiveOutputStream.java +++ b/independent-projects/resteasy-reactive/server/vertx/src/main/java/org/jboss/resteasy/reactive/server/vertx/ResteasyReactiveOutputStream.java @@ -226,10 +226,12 @@ private void prepareWrite(ByteBuf buffer, boolean finished) throws IOException { if (!committed) { committed = true; if (finished) { - if (buffer == null) { - context.serverResponse().setResponseHeader(HttpHeaderNames.CONTENT_LENGTH, "0"); - } else { - context.serverResponse().setResponseHeader(HttpHeaderNames.CONTENT_LENGTH, "" + buffer.readableBytes()); + if (!context.serverResponse().headWritten()) { + if (buffer == null) { + context.serverResponse().setResponseHeader(HttpHeaderNames.CONTENT_LENGTH, "0"); + } else { + context.serverResponse().setResponseHeader(HttpHeaderNames.CONTENT_LENGTH, "" + buffer.readableBytes()); + } } } else { var contentLengthSet = contentLengthSet();