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 19bc0c7ecf Speedup by removing non pattern replaceAll with constant arg
19bc0c7ecf is described below

commit 19bc0c7ecfd2cfb13a480c7ea954154244be3ec5
Author: Andrey Bruykhov <andreybr...@gmail.com>
AuthorDate: Thu Feb 2 15:38:32 2023 +0300

    Speedup by removing non pattern replaceAll with constant arg
    
    replaceAll("ABC", "") is non Pattern method and therefore must be
    replaced to simple fast replace()
    A proofs of changes:
    https://gist.github.com/tbw777/8a6ef60af21487c5faec67037099fd0b
---
 java/org/apache/catalina/startup/ClassLoaderFactory.java           | 4 ++--
 java/org/apache/tomcat/buildutil/translate/Utils.java              | 2 +-
 test/javax/el/TestImportHandlerStandardPackages.java               | 2 +-
 test/org/apache/tomcat/util/http/parser/TestMediaType.java         | 2 +-
 test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java | 2 +-
 webapps/docs/changelog.xml                                         | 5 +++++
 6 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/java/org/apache/catalina/startup/ClassLoaderFactory.java 
b/java/org/apache/catalina/startup/ClassLoaderFactory.java
index 684b707e52..3b9df354c2 100644
--- a/java/org/apache/catalina/startup/ClassLoaderFactory.java
+++ b/java/org/apache/catalina/startup/ClassLoaderFactory.java
@@ -301,7 +301,7 @@ public final class ClassLoaderFactory {
         // JARs. If these URLs are used to construct URLs for resources in a 
JAR
         // the URL will be used as is. It is therefore necessary to ensure that
         // the sequence "!/" is not present in a class loader URL.
-        String result = urlString.replaceAll("!/", "%21/");
+        String result = urlString.replace("!/", "%21/");
         return new URI(result).toURL();
     }
 
@@ -309,7 +309,7 @@ public final class ClassLoaderFactory {
     private static URL buildClassLoaderUrl(File file) throws 
MalformedURLException, URISyntaxException {
         // Could be a directory or a file
         String fileUrlString = file.toURI().toString();
-        fileUrlString = fileUrlString.replaceAll("!/", "%21/");
+        fileUrlString = fileUrlString.replace("!/", "%21/");
         return new URI(fileUrlString).toURL();
     }
 
diff --git a/java/org/apache/tomcat/buildutil/translate/Utils.java 
b/java/org/apache/tomcat/buildutil/translate/Utils.java
index 1daa6669db..658dfc0243 100644
--- a/java/org/apache/tomcat/buildutil/translate/Utils.java
+++ b/java/org/apache/tomcat/buildutil/translate/Utils.java
@@ -105,7 +105,7 @@ public class Utils {
 
         result = ESCAPE_LEADING_SPACE.matcher(result).replaceAll("\\\\$1");
 
-        result = result.replaceAll("\t", "\\t");
+        result = result.replace("\t", "\\t");
 
         return result;
     }
diff --git a/test/javax/el/TestImportHandlerStandardPackages.java 
b/test/javax/el/TestImportHandlerStandardPackages.java
index 319922cb2e..f314a434f4 100644
--- a/test/javax/el/TestImportHandlerStandardPackages.java
+++ b/test/javax/el/TestImportHandlerStandardPackages.java
@@ -133,7 +133,7 @@ public class TestImportHandlerStandardPackages {
                         // Skip directories
                         continue;
                     }
-                    Class<?> clazz = Class.forName(packageName + "." + 
name.replaceAll("\\.", "\\$"));
+                    Class<?> clazz = Class.forName(packageName + "." + 
name.replace(".", "$"));
                     if (!Modifier.isPublic(clazz.getModifiers())) {
                         // Skip non-public classes
                         continue;
diff --git a/test/org/apache/tomcat/util/http/parser/TestMediaType.java 
b/test/org/apache/tomcat/util/http/parser/TestMediaType.java
index d4440fd31b..a0e19f740c 100644
--- a/test/org/apache/tomcat/util/http/parser/TestMediaType.java
+++ b/test/org/apache/tomcat/util/http/parser/TestMediaType.java
@@ -150,7 +150,7 @@ public class TestMediaType {
         MediaType m = MediaType.parseMediaType(sr);
 
         Assert.assertEquals(CHARSET_WS, m.getCharset());
-        Assert.assertEquals(TYPES.replaceAll(" ", ""),
+        Assert.assertEquals(TYPES.replace(" ", ""),
                 m.toStringNoCharset());
     }
 
diff --git a/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java 
b/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
index 4a9735f653..0df4cb26bb 100644
--- a/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
+++ b/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
@@ -276,7 +276,7 @@ public class TesterOpenSSL {
         String ciphers[] = stdout.split("\n");
         for (String cipher : ciphers) {
             // Handle rename for 1.1.0 onwards
-            cipher = cipher.replaceAll("EDH", "DHE");
+            cipher = cipher.replace("EDH", "DHE");
             if (first) {
                 first = false;
             } else {
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 4636c07074..f8aabefb51 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -111,6 +111,11 @@
         Allow a Valve to access cookies from a request that cannot be mapped to
         a Context. (markt)
       </fix>
+      <fix>
+        Refactor uses of <code>String.replaceAll()</code> to use
+        <code>String.replace()</code> where regular expressions where not being
+        used. Pull request <pr>581</pr> provided by Andrei Briukhov. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">


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

Reply via email to