From f0e83eb75c072713027df2b86b7c191069743469 Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Mon, 31 Aug 2026 13:43:53 +0800 Subject: [PATCH] fix(http-client-java): continue after constant response headers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: bb07cf76-b69f-4640-87a7-8660a97e0d23 --- .../fix-java-response-constant-header-2026-08-31.md | 7 +++++++ .../http-client-java/emitter/src/code-model-builder.ts | 6 +++--- .../http-client-generator-test/tsp/response-headers.tsp | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 .chronus/changes/fix-java-response-constant-header-2026-08-31.md diff --git a/.chronus/changes/fix-java-response-constant-header-2026-08-31.md b/.chronus/changes/fix-java-response-constant-header-2026-08-31.md new file mode 100644 index 00000000000..6dd61a1cf1b --- /dev/null +++ b/.chronus/changes/fix-java-response-constant-header-2026-08-31.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-java" +--- + +Continue generating response headers that follow a constant header. diff --git a/packages/http-client-java/emitter/src/code-model-builder.ts b/packages/http-client-java/emitter/src/code-model-builder.ts index 82ea7303e8d..2b1e840e78e 100644 --- a/packages/http-client-java/emitter/src/code-model-builder.ts +++ b/packages/http-client-java/emitter/src/code-model-builder.ts @@ -2322,15 +2322,15 @@ export class CodeModelBuilder { if (schema instanceof ConstantSchema) { // skip constant header in response - if (isContentTypeHeader(header)) { - // we does not warn on content-type as constant, as this is the most common case + if (!isContentTypeHeader(header)) { + // we do not warn on content-type as constant, as this is the most common case reportDiagnostic(this.program, { code: "constant-header-in-response-removed", format: { headerName: header.serializedName }, target: header.__raw ?? NoTarget, }); } - break; + continue; } const httpHeader = new HttpHeader(header.serializedName, schema, { diff --git a/packages/http-client-java/generator/http-client-generator-test/tsp/response-headers.tsp b/packages/http-client-java/generator/http-client-generator-test/tsp/response-headers.tsp index a2d6cc9b05a..e4d698309bf 100644 --- a/packages/http-client-java/generator/http-client-generator-test/tsp/response-headers.tsp +++ b/packages/http-client-java/generator/http-client-generator-test/tsp/response-headers.tsp @@ -17,6 +17,9 @@ interface ResponseHeaderOp { getResourceMetadata(): { @statusCode statusCode: 200; + // constant headers are omitted from the generated response headers model + @header("x-constant-header") constantHeader: "constant-value"; + // required header, with mixed-case header name @header("ETag") eTag: string;