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

Reply via email to