From a79f60853497a609b77aeb916adb86c550d37414 Mon Sep 17 00:00:00 2001 From: Matthias Kurz Date: Mon, 8 Jul 2024 14:22:47 +0200 Subject: [PATCH] Make Java's StreamedResponse.headers case insensitively --- .../java/play/libs/ws/ahc/StreamedResponse.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/play-ahc-ws-standalone/src/main/java/play/libs/ws/ahc/StreamedResponse.java b/play-ahc-ws-standalone/src/main/java/play/libs/ws/ahc/StreamedResponse.java index d7120c5b..c2d43951 100644 --- a/play-ahc-ws-standalone/src/main/java/play/libs/ws/ahc/StreamedResponse.java +++ b/play-ahc-ws-standalone/src/main/java/play/libs/ws/ahc/StreamedResponse.java @@ -17,9 +17,11 @@ import scala.jdk.javaapi.StreamConverters; import java.net.URI; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.TreeMap; import java.util.function.Predicate; import static java.util.stream.Collectors.toMap; @@ -121,7 +123,16 @@ public URI getUri() { } private static java.util.Map> asJava(scala.collection.Map> scalaMap) { - return StreamConverters.asJavaSeqStream(scalaMap).collect(toMap(f -> f._1(), f -> CollectionConverters.asJava(f._2()))); + return StreamConverters.asJavaSeqStream(scalaMap).collect(toMap(f -> f._1(), f -> CollectionConverters.asJava(f._2()), + (l, r) -> { + final List merged = new ArrayList<>(l.size() + r.size()); + merged.addAll(l); + merged.addAll(r); + return merged; + }, + () -> new TreeMap<>(String.CASE_INSENSITIVE_ORDER) + ) + ); } }