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 2023/02/03 13:06:53 UTC
[tomcat] branch 10.1.x updated: Speedup by removing non pattern replaceAll with constant arg
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new 14a0f91fd7 Speedup by removing non pattern replaceAll with constant arg
14a0f91fd7 is described below
commit 14a0f91fd7136a1f13480292cb790de18c7b3f16
Author: Andrey Bruykhov <an...@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/catalina/util/ContextName.java | 2 +-
java/org/apache/jasper/compiler/SmapUtil.java | 4 ++--
java/org/apache/tomcat/buildutil/translate/Utils.java | 2 +-
test/jakarta/el/TestImportHandlerStandardPackages.java | 2 +-
test/org/apache/juli/TestFileHandler.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 +++++
9 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/java/org/apache/catalina/startup/ClassLoaderFactory.java b/java/org/apache/catalina/startup/ClassLoaderFactory.java
index 394e8a0606..a451ccfb0c 100644
--- a/java/org/apache/catalina/startup/ClassLoaderFactory.java
+++ b/java/org/apache/catalina/startup/ClassLoaderFactory.java
@@ -295,7 +295,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();
}
@@ -303,7 +303,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/catalina/util/ContextName.java b/java/org/apache/catalina/util/ContextName.java
index ce412247c0..f426d41972 100644
--- a/java/org/apache/catalina/util/ContextName.java
+++ b/java/org/apache/catalina/util/ContextName.java
@@ -185,7 +185,7 @@ public final class ContextName {
*/
public static ContextName extractFromPath(String path) {
// Convert '\' to '/'
- path = path.replaceAll("\\\\", "/");
+ path = path.replace("\\", "/");
// Remove trailing '/'. Use while just in case a value ends in ///
while (path.endsWith("/")) {
path = path.substring(0, path.length() - 1);
diff --git a/java/org/apache/jasper/compiler/SmapUtil.java b/java/org/apache/jasper/compiler/SmapUtil.java
index c3e5b4c14e..42f4a04d25 100644
--- a/java/org/apache/jasper/compiler/SmapUtil.java
+++ b/java/org/apache/jasper/compiler/SmapUtil.java
@@ -776,12 +776,12 @@ public class SmapUtil {
InputStream is = null;
try {
- is = cl.getResourceAsStream(className.replaceAll("\\.","/") + ".smap");
+ is = cl.getResourceAsStream(className.replace(".","/") + ".smap");
if (is != null) {
encoding = SMAP_ENCODING;
found = true;
} else {
- is = cl.getResourceAsStream(className.replaceAll("\\.","/") + ".class");
+ is = cl.getResourceAsStream(className.replace(".","/") + ".class");
// Alternative approach would be to read the class file as per the
// JLS. That would require duplicating a lot of BCEL functionality.
int b = is.read();
diff --git a/java/org/apache/tomcat/buildutil/translate/Utils.java b/java/org/apache/tomcat/buildutil/translate/Utils.java
index 019b8b0fef..c617c8d975 100644
--- a/java/org/apache/tomcat/buildutil/translate/Utils.java
+++ b/java/org/apache/tomcat/buildutil/translate/Utils.java
@@ -123,7 +123,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/jakarta/el/TestImportHandlerStandardPackages.java b/test/jakarta/el/TestImportHandlerStandardPackages.java
index ebd2d8610b..817079394d 100644
--- a/test/jakarta/el/TestImportHandlerStandardPackages.java
+++ b/test/jakarta/el/TestImportHandlerStandardPackages.java
@@ -119,7 +119,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/juli/TestFileHandler.java b/test/org/apache/juli/TestFileHandler.java
index 656c5fbb09..b6f4f2cdea 100644
--- a/test/org/apache/juli/TestFileHandler.java
+++ b/test/org/apache/juli/TestFileHandler.java
@@ -54,7 +54,7 @@ public class TestFileHandler {
generateLogFiles(logsDir, PREFIX_3, SUFFIX_1, 3);
generateLogFiles(logsDir, PREFIX_4, SUFFIX_1, 3);
- String date = LocalDateTime.now().minusDays(3).toString().replaceAll(":", "-");
+ String date = LocalDateTime.now().minusDays(3).toString().replace(":", "-");
File file = new File(logsDir, PREFIX_1 + date + SUFFIX_1);
if (!file.createNewFile()) {
Assert.fail("Unable to create " + file.getAbsolutePath());
diff --git a/test/org/apache/tomcat/util/http/parser/TestMediaType.java b/test/org/apache/tomcat/util/http/parser/TestMediaType.java
index 406ec15539..1ab82ffad0 100644
--- a/test/org/apache/tomcat/util/http/parser/TestMediaType.java
+++ b/test/org/apache/tomcat/util/http/parser/TestMediaType.java
@@ -158,7 +158,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 3f154a831e..4adcad2a73 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -124,6 +124,11 @@
previous behavior following the removal of Java 9+ reflection code which
caught the ISE. (remm)
</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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org