You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2024/02/12 20:32:47 UTC

(tomcat) branch 8.5.x updated: Partial fix for BZ-68558. Improve performance by caching byte[]->String

This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
     new 1855dddd06 Partial fix for BZ-68558. Improve performance by caching byte[]->String
1855dddd06 is described below

commit 1855dddd062a97a43cccdba38648254d43158549
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Feb 12 20:30:35 2024 +0000

    Partial fix for BZ-68558. Improve performance by caching byte[]->String
    
    https://bz.apache.org/bugzilla/show_bug.cgi?id=68558
---
 java/org/apache/catalina/connector/Request.java   | 2 +-
 java/org/apache/coyote/Request.java               | 2 +-
 java/org/apache/tomcat/util/http/MimeHeaders.java | 2 +-
 webapps/docs/changelog.xml                        | 6 ++++++
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java
index 4955e49fa7..2103b93226 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -2372,7 +2372,7 @@ public class Request implements HttpServletRequest {
      */
     @Override
     public String getRequestURI() {
-        return coyoteRequest.requestURI().toString();
+        return coyoteRequest.requestURI().toStringType();
     }
 
 
diff --git a/java/org/apache/coyote/Request.java b/java/org/apache/coyote/Request.java
index 201d8e54d8..9f4ef030fa 100644
--- a/java/org/apache/coyote/Request.java
+++ b/java/org/apache/coyote/Request.java
@@ -443,7 +443,7 @@ public final class Request {
         if (contentTypeMB == null || contentTypeMB.isNull()) {
             return null;
         }
-        return contentTypeMB.toString();
+        return contentTypeMB.toStringType();
     }
 
 
diff --git a/java/org/apache/tomcat/util/http/MimeHeaders.java b/java/org/apache/tomcat/util/http/MimeHeaders.java
index dbe0cee272..fd4394c882 100644
--- a/java/org/apache/tomcat/util/http/MimeHeaders.java
+++ b/java/org/apache/tomcat/util/http/MimeHeaders.java
@@ -418,7 +418,7 @@ class NamesEnumerator implements Enumeration<String> {
     private void findNext() {
         next = null;
         for (; pos < size; pos++) {
-            next = headers.getName(pos).toString();
+            next = headers.getName(pos).toStringType();
             for (int j = 0; j < pos; j++) {
                 if (headers.getName(j).equalsIgnoreCase(next)) {
                     // duplicate.
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index a5a63eadef..5900a72199 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -159,6 +159,12 @@
         Improve the Tomcat Native shutdown process to reduce the likelihood of a
         JVM crash during Tomcat shutdown. (markt)
       </fix>
+      <fix>
+        Partial fix for <bug>68558</bug>: Cache the result of converting to
+        <code>String</code> for request URI, HTTP header names and the request
+        <code>Content-Type</code> value to improve performance by reducing
+        repeated <code>byte[]</code> to <code>String</code> conversions. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Jasper">


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org