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 983975085d Partial fix for BZ-68558. Improve performance by caching 
byte[]->String
983975085d is described below

commit 983975085def5144ca5db9b695b822d787ded51e
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 508b279edf..d78887ce3a 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -2250,7 +2250,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 2cbf500b46..6d2ab8b640 100644
--- a/java/org/apache/coyote/Request.java
+++ b/java/org/apache/coyote/Request.java
@@ -479,7 +479,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 1106be7ad6..065a19a223 100644
--- a/java/org/apache/tomcat/util/http/MimeHeaders.java
+++ b/java/org/apache/tomcat/util/http/MimeHeaders.java
@@ -413,7 +413,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 e4ddfbd30c..446d2d7ea9 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -176,6 +176,12 @@
         configured on <code>SSLHostConfigCertificate</code> instances. Based on
         pull request <pr>673</pr> provided by Hakan Altındağ. (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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to