This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/main by this push:
new e4f6a6d4c8 Add check to prevent redundant values in headers when using
GZIPOutInterceptor (#1819)
e4f6a6d4c8 is described below
commit e4f6a6d4c8ce365c4b0a96041de702297d3e3f18
Author: Yoann Vernageau <[email protected]>
AuthorDate: Sat Apr 20 17:57:16 2024 +0200
Add check to prevent redundant values in headers when using
GZIPOutInterceptor (#1819)
* Add check to prevent redundant values in headers when using
GZIPOutInterceptor
* Simplify GZIPOutInterceptor#addHeader
---
.../cxf/transport/common/gzip/GZIPOutInterceptor.java | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git
a/core/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java
b/core/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java
index 8a80d07a17..d7fc1686d8 100644
---
a/core/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java
+++
b/core/src/main/java/org/apache/cxf/transport/common/gzip/GZIPOutInterceptor.java
@@ -323,21 +323,14 @@ public class GZIPOutInterceptor extends
AbstractPhaseInterceptor<Message> {
* @param value the value to add
*/
private static void addHeader(Message message, String name, String value) {
- Map<String, List<String>> protocolHeaders = CastUtils.cast((Map<?,
?>)message
- .get(Message.PROTOCOL_HEADERS));
- if (protocolHeaders == null) {
- protocolHeaders = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
- message.put(Message.PROTOCOL_HEADERS, protocolHeaders);
+ Map<String, List<String>> headers = CastUtils.cast((Map<?,
?>)message.get(Message.PROTOCOL_HEADERS));
+ if (headers == null) {
+ headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+ message.put(Message.PROTOCOL_HEADERS, headers);
}
- List<String> header =
CastUtils.cast((List<?>)protocolHeaders.get(name));
- if (header == null) {
- header = new ArrayList<>();
- protocolHeaders.put(name, header);
- }
- if (header.isEmpty()) {
+ List<String> header = headers.computeIfAbsent(name, k -> new
ArrayList<>());
+ if (header.isEmpty() || !header.contains(value)) {
header.add(value);
- } else {
- header.set(0, header.get(0) + "," + value);
}
}
public void setForce(boolean force) {