From d5d37077777a988ba19c6b5b4253d8470e418332 Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Mon, 15 Jan 2024 15:43:49 -0500 Subject: [PATCH] CXF-8812: Content-Type header created with collection containing 'null' value --- .../src/main/java/org/apache/cxf/jaxrs/JAXRSBinding.java | 1 + .../apache/cxf/transport/http/AbstractHTTPDestination.java | 2 +- .../main/java/org/apache/cxf/transport/http/Headers.java | 7 ++++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSBinding.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSBinding.java index bf4cc7dbf19..815ad5cbd71 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSBinding.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSBinding.java @@ -52,6 +52,7 @@ public org.apache.cxf.message.Message createMessage(org.apache.cxf.message.Messa if (exchange != null) { ct = (String)exchange.get(org.apache.cxf.message.Message.CONTENT_TYPE); } + m.put(org.apache.cxf.message.Message.CONTENT_TYPE, ct); } return m; diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java index 376131af49a..cc063a07ddc 100644 --- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java +++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java @@ -380,8 +380,8 @@ private boolean isWSAddressingReplyToSpecified(Exchange ex) { } String contentType = req.getContentType(); inMessage.put(Message.CONTENT_TYPE, contentType); - setEncoding(inMessage, req, contentType); + setEncoding(inMessage, req, contentType); inMessage.put(Message.QUERY_STRING, req.getQueryString()); inMessage.put(Message.ACCEPT_CONTENT_TYPE, req.getHeader("Accept")); diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java index 5df6f727d16..fbf61e9967b 100644 --- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java +++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java @@ -448,7 +448,12 @@ protected void copyFromRequest(HttpServletRequest req) { } } if (!headers.containsKey(Message.CONTENT_TYPE)) { - headers.put(Message.CONTENT_TYPE, Collections.singletonList(req.getContentType())); + final String contentType = req.getContentType(); + if (contentType != null) { + headers.put(Message.CONTENT_TYPE, Collections.singletonList(contentType)); + } else { + headers.put(Message.CONTENT_TYPE, null); + } } if (LOG.isLoggable(Level.FINE)) { Map> theHeaders = CastUtils.cast(headers);