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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]