This is an automated email from the ASF dual-hosted git repository. dkulp pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 365932977e4c97b34ca6de47425fd60054d91511 Author: Daniel Kulp <[email protected]> AuthorDate: Wed Mar 15 14:21:16 2023 -0400 Update the ServletRequest adapters to implement getContentLengthLong instead of throw exception --- .../transport/http_jaxws_spi/HttpServletRequestAdapter.java | 12 ++++++++++-- .../http/netty/server/servlet/NettyHttpServletRequest.java | 2 +- .../apache/cxf/transport/http/AbstractHTTPDestination.java | 4 +++- .../websocket/jetty/WebSocketVirtualServletRequest.java | 4 ++-- .../websocket/undertow/WebSocketUndertowServletRequest.java | 4 ++-- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java index ec13a3a225..74af87b416 100644 --- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java +++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/transport/http_jaxws_spi/HttpServletRequestAdapter.java @@ -89,7 +89,11 @@ class HttpServletRequestAdapter implements HttpServletRequest { } public int getContentLength() { - return 0; + String s = getHeader("Content-Length"); + if (s != null) { + return Integer.parseInt(s); + } + return -1; } public String getContentType() { @@ -432,7 +436,11 @@ class HttpServletRequestAdapter implements HttpServletRequest { @Override public long getContentLengthLong() { - throw new UnsupportedOperationException(); + String s = getHeader("Content-Length"); + if (s != null) { + return Long.parseLong(s); + } + return -1; } @Override diff --git a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyHttpServletRequest.java b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyHttpServletRequest.java index 60f619214a..e4c3f4819f 100644 --- a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyHttpServletRequest.java +++ b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/servlet/NettyHttpServletRequest.java @@ -481,7 +481,7 @@ public class NettyHttpServletRequest implements HttpServletRequest { @Override public long getContentLengthLong() { - throw new IllegalStateException("Method 'getContentLengthLong' not yet implemented!"); + return getContentLength(); } @Override 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 e51e6c4616..376131af49 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 @@ -318,7 +318,9 @@ public abstract class AbstractHTTPDestination //Please note, exchange used to always get the "current" message exchange.getInMessage().put(HTTP_REQUEST, new HttpServletRequestSnapshot(req)); } - super.cacheInput(); + if (req.getContentLengthLong() != 0) { + super.cacheInput(); + } } private boolean isWSAddressingReplyToSpecified(Exchange ex) { AddressingProperties map = ContextUtils.retrieveMAPs(ex.getInMessage(), false, false, false); diff --git a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty/WebSocketVirtualServletRequest.java b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty/WebSocketVirtualServletRequest.java index 72014dd386..c9439375f1 100644 --- a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty/WebSocketVirtualServletRequest.java +++ b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/jetty/WebSocketVirtualServletRequest.java @@ -122,7 +122,7 @@ public class WebSocketVirtualServletRequest implements HttpServletRequest { @Override public int getContentLength() { LOG.log(Level.FINE, "getContentLength()"); - return 0; + return -1; } @Override @@ -544,7 +544,7 @@ public class WebSocketVirtualServletRequest implements HttpServletRequest { @Override public long getContentLengthLong() { - throw new UnsupportedOperationException(); + return -1; } @Override diff --git a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/undertow/WebSocketUndertowServletRequest.java b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/undertow/WebSocketUndertowServletRequest.java index 303ed180a1..7444176468 100644 --- a/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/undertow/WebSocketUndertowServletRequest.java +++ b/rt/transports/websocket/src/main/java/org/apache/cxf/transport/websocket/undertow/WebSocketUndertowServletRequest.java @@ -125,7 +125,7 @@ public class WebSocketUndertowServletRequest implements HttpServletRequest { @Override public int getContentLength() { LOG.log(Level.FINE, "getContentLength()"); - return 0; + return -1; } @Override @@ -569,7 +569,7 @@ public class WebSocketUndertowServletRequest implements HttpServletRequest { @Override public long getContentLengthLong() { - throw new UnsupportedOperationException(); + return -1; } @Override
