Mark,
On 4/24/24 14:47, ma...@apache.org wrote:
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new f087decbc9 Refactor storage of trailer fields to use MimeHeaders
f087decbc9 is described below
commit f087decbc938eff084b7be92298457736fe783c2
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Apr 24 19:47:33 2024 +0100
Refactor storage of trailer fields to use MimeHeaders
---
java/org/apache/catalina/connector/Request.java | 4 ++--
java/org/apache/coyote/Request.java | 15 +++++++++++++--
.../coyote/http11/filters/ChunkedInputFilter.java | 6 +++---
java/org/apache/coyote/http2/Stream.java | 2 +-
java/org/apache/tomcat/util/buf/StringUtils.java | 5 +++++
java/org/apache/tomcat/util/http/MimeHeaders.java | 19 +++++++++++++++++++
webapps/docs/changelog.xml | 8 ++++++++
7 files changed, 51 insertions(+), 8 deletions(-)
diff --git a/java/org/apache/catalina/connector/Request.java
b/java/org/apache/catalina/connector/Request.java
index 390ca9daa1..6bf0f0a940 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -1763,8 +1763,8 @@ public class Request implements HttpServletRequest {
if (!isTrailerFieldsReady()) {
throw new
IllegalStateException(sm.getString("coyoteRequest.trailersNotReady"));
}
- Map<String,String> result = new
HashMap<>(coyoteRequest.getTrailerFields());
- return result;
+ // No need for a defensive copy since a new Map is returned for every
call.
+ return coyoteRequest.getTrailerFields();
}
diff --git a/java/org/apache/coyote/Request.java b/java/org/apache/coyote/Request.java
index 680aec6a7b..bf948b09a6 100644
--- a/java/org/apache/coyote/Request.java
+++ b/java/org/apache/coyote/Request.java
@@ -110,7 +110,7 @@ public final class Request {
private final MessageBytes localAddrMB = MessageBytes.newInstance();
private final MimeHeaders headers = new MimeHeaders();
- private final Map<String, String> trailerFields = new HashMap<>();
+ private final MimeHeaders trailerFields = new MimeHeaders();
/**
* Path parameters
@@ -293,6 +293,11 @@ public final class Request {
public Map<String, String> getTrailerFields() {
+ return trailerFields.toMap();
+ }
Should getTrailerFields call getMimeTrailerFields instead of using
this.trailerFields directly? I'm not sure how much we really care about
subclasses...
-chris
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org