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

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


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

commit 5ac96bf47bafe20f59f6c4e22fd39ff35f1f466a
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 2f799d62c1..e429bd00cf 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -2381,7 +2381,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 f5b1c12960..e6f1ea8ce2 100644
--- a/java/org/apache/coyote/Request.java
+++ b/java/org/apache/coyote/Request.java
@@ -442,7 +442,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 b92d0b824e..bd7d48f99a 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -165,6 +165,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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to