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

markt-asf 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 034d0228f2 Switch to using String.strip() rather than String.trim() as 
appropriate
034d0228f2 is described below

commit 034d0228f269ea71d0da967ce325086cdc8fb4c4
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Oct 28 10:59:44 2026 +0000

    Switch to using String.strip() rather than String.trim() as appropriate
---
 java/jakarta/el/ELProcessor.java                   | 16 ++++++++--------
 java/jakarta/el/ExpressionFactory.java             |  8 ++++----
 .../catalina/authenticator/AuthenticatorBase.java  |  4 ++--
 .../catalina/authenticator/SingleSignOn.java       |  2 +-
 java/org/apache/catalina/core/StandardContext.java |  2 +-
 java/org/apache/catalina/core/StandardHost.java    |  4 ++--
 java/org/apache/catalina/filters/CorsFilter.java   |  4 ++--
 .../catalina/filters/CsrfPreventionFilter.java     |  8 ++++----
 .../org/apache/catalina/filters/ExpiresFilter.java |  4 ++--
 .../apache/catalina/filters/RateLimitFilter.java   |  2 +-
 .../catalina/filters/RestCsrfPreventionFilter.java |  2 +-
 java/org/apache/catalina/ha/backend/TcpSender.java |  2 +-
 .../catalina/manager/HTMLManagerServlet.java       |  2 +-
 .../org/apache/catalina/realm/DataSourceRealm.java |  4 ++--
 java/org/apache/catalina/realm/JNDIRealm.java      |  6 +++---
 java/org/apache/catalina/realm/MemoryRealm.java    |  2 +-
 java/org/apache/catalina/realm/RealmBase.java      |  4 ++--
 .../apache/catalina/security/SecurityListener.java |  2 +-
 java/org/apache/catalina/servlets/CGIServlet.java  |  4 ++--
 .../apache/catalina/servlets/DefaultServlet.java   |  4 ++--
 .../apache/catalina/session/DataSourceStore.java   |  2 +-
 .../apache/catalina/ssi/ExpressionTokenizer.java   |  2 +-
 java/org/apache/catalina/ssi/SSIProcessor.java     |  2 +-
 java/org/apache/catalina/startup/Bootstrap.java    |  4 ++--
 .../catalina/startup/WebappServiceLoader.java      |  2 +-
 .../catalina/storeconfig/XMLFormatPreserver.java   | 10 +++++-----
 .../group/interceptors/EncryptInterceptor.java     |  2 +-
 .../catalina/users/DataSourceUserDatabase.java     |  2 +-
 .../apache/catalina/users/MemoryUserDatabase.java  | 12 ++++++------
 .../catalina/valves/ParameterLimitValve.java       |  6 +++---
 .../valves/rewrite/RandomizedTextRewriteMap.java   |  4 ++--
 .../catalina/valves/rewrite/ResolverImpl.java      |  4 ++--
 java/org/apache/coyote/CompressionConfig.java      |  6 +++---
 java/org/apache/jasper/compiler/ELParser.java      |  2 +-
 java/org/apache/jasper/compiler/Generator.java     |  4 ++--
 .../apache/jasper/compiler/JavacErrorDetail.java   |  2 +-
 java/org/apache/jasper/compiler/Node.java          | 18 +++++++++---------
 java/org/apache/jasper/compiler/SmapUtil.java      |  2 +-
 java/org/apache/jasper/compiler/Validator.java     |  6 +++---
 java/org/apache/jasper/tagplugins/jstl/Util.java   |  4 ++--
 java/org/apache/juli/ClassLoaderLogManager.java    |  8 ++++----
 java/org/apache/juli/FileHandler.java              |  2 +-
 .../apache/tomcat/buildutil/translate/Import.java  |  2 +-
 .../tomcat/util/buf/EncodedSolidusHandling.java    |  2 +-
 java/org/apache/tomcat/util/buf/StringUtils.java   |  2 +-
 .../tomcat/util/descriptor/tld/TldRuleSet.java     |  2 +-
 .../util/descriptor/web/SecurityConstraint.java    |  8 ++++----
 .../tomcat/util/descriptor/web/WebRuleSet.java     |  4 ++--
 .../tomcat/util/digester/CallMethodRule.java       |  2 +-
 .../apache/tomcat/util/digester/CallParamRule.java |  2 +-
 java/org/apache/tomcat/util/digester/Digester.java |  2 +-
 .../tomcat/util/http/CookiesWithoutEquals.java     |  2 +-
 java/org/apache/tomcat/util/net/SSLHostConfig.java | 16 ++++++++--------
 .../tomcat/util/scan/StandardJarScanFilter.java    |  2 +-
 .../tomcat/util/scan/StandardJarScanner.java       |  2 +-
 .../org/apache/tomcat/manager2/AppsApiServlet.java |  6 +++---
 .../apache/tomcat/manager2/ConfigApiServlet.java   | 22 +++++++++++-----------
 .../apache/tomcat/manager2/HostsApiServlet.java    |  2 +-
 .../apache/tomcat/manager2/StatusApiServlet.java   |  2 +-
 .../org/apache/tomcat/manager2/StatusSnapshot.java |  2 +-
 .../webbeans/web/tomcat/TomcatSecurityService.java |  2 +-
 .../catalina/core/TestApplicationDispatcher.java   |  4 ++--
 .../catalina/tribes/demos/CoordinationDemo.java    |  6 +++---
 .../valves/TestExtendedAccessLogValve.java         |  4 ++--
 test/org/apache/el/TesterFunctions.java            |  2 +-
 .../jasper/compiler/TestEncodingDetector.java      |  2 +-
 test/org/apache/jasper/compiler/TestJspUtil.java   |  2 +-
 .../apache/juli/TestPerWebappJuliIntegration.java  |  4 ++--
 test/org/apache/naming/TestEnvEntry.java           |  4 ++--
 .../util/net/openssl/ciphers/TesterOpenSSL.java    |  4 ++--
 webapps/docs/changelog.xml                         |  4 ++++
 71 files changed, 158 insertions(+), 154 deletions(-)

diff --git a/java/jakarta/el/ELProcessor.java b/java/jakarta/el/ELProcessor.java
index 0b3795116e..fd0ba80c84 100644
--- a/java/jakarta/el/ELProcessor.java
+++ b/java/jakarta/el/ELProcessor.java
@@ -283,10 +283,10 @@ public class ELProcessor {
             int paramIndex = methodName.indexOf('(');
 
             if (paramIndex == -1) {
-                name = methodName.trim();
+                name = methodName.strip();
                 parameterTypeNames = null;
             } else {
-                String returnTypeAndName = methodName.substring(0, 
paramIndex).trim();
+                String returnTypeAndName = methodName.substring(0, 
paramIndex).strip();
                 // Assume that the return type and the name are separated by
                 // whitespace. Given the use of trim() above, there should only
                 // be one sequence of whitespace characters.
@@ -300,27 +300,27 @@ public class ELProcessor {
                 if (wsPos == -1) {
                     throw new NoSuchMethodException();
                 }
-                name = returnTypeAndName.substring(wsPos).trim();
+                name = returnTypeAndName.substring(wsPos).strip();
 
-                String paramString = methodName.substring(paramIndex).trim();
+                String paramString = methodName.substring(paramIndex).strip();
                 // We know the params start with '(', check they end with ')'
                 if (!paramString.endsWith(")")) {
                     throw new NoSuchMethodException(Util.message(context,
                             "elProcessor.defineFunctionInvalidParameterList", 
paramString, methodName, className));
                 }
                 // Trim '(' and ')'
-                paramString = paramString.substring(1, paramString.length() - 
1).trim();
+                paramString = paramString.substring(1, paramString.length() - 
1).strip();
                 if (paramString.isEmpty()) {
                     parameterTypeNames = EMPTY_STRING_ARRAY;
                 } else {
                     parameterTypeNames = paramString.split(",");
                     ImportHandler importHandler = context.getImportHandler();
                     for (int i = 0; i < parameterTypeNames.length; i++) {
-                        String parameterTypeName = 
parameterTypeNames[i].trim();
+                        String parameterTypeName = 
parameterTypeNames[i].strip();
                         int dimension = 0;
                         int bracketPos = parameterTypeName.indexOf('[');
                         if (bracketPos > -1) {
-                            String parameterTypeNameOnly = 
parameterTypeName.substring(0, bracketPos).trim();
+                            String parameterTypeNameOnly = 
parameterTypeName.substring(0, bracketPos).strip();
                             while (bracketPos > -1) {
                                 dimension++;
                                 bracketPos = parameterTypeName.indexOf('[', 
bracketPos + 1);
@@ -331,7 +331,7 @@ public class ELProcessor {
                         if (parameterTypeName.endsWith("...")) {
                             varArgs = true;
                             dimension = 1;
-                            parameterTypeName = parameterTypeName.substring(0, 
parameterTypeName.length() - 3).trim();
+                            parameterTypeName = parameterTypeName.substring(0, 
parameterTypeName.length() - 3).strip();
                         }
                         boolean isPrimitive = 
PRIMITIVES.contains(parameterTypeName);
                         if (isPrimitive && dimension > 0) {
diff --git a/java/jakarta/el/ExpressionFactory.java 
b/java/jakarta/el/ExpressionFactory.java
index 65fe056ad6..68f3a52ae7 100644
--- a/java/jakarta/el/ExpressionFactory.java
+++ b/java/jakarta/el/ExpressionFactory.java
@@ -360,8 +360,8 @@ public abstract class ExpressionFactory {
                 Properties props = new Properties();
                 props.load(is);
                 String value = props.getProperty(PROPERTY_NAME);
-                if (value != null && !value.trim().isEmpty()) {
-                    return value.trim();
+                if (value != null && !value.strip().isEmpty()) {
+                    return value.strip();
                 }
             } catch (FileNotFoundException e) {
                 // Should not happen - ignore it if it does
@@ -374,8 +374,8 @@ public abstract class ExpressionFactory {
 
     private static String getClassNameSysProp() {
         String value = System.getProperty(PROPERTY_NAME);
-        if (value != null && !value.trim().isEmpty()) {
-            return value.trim();
+        if (value != null && !value.strip().isEmpty()) {
+            return value.strip();
         }
         return null;
     }
diff --git a/java/org/apache/catalina/authenticator/AuthenticatorBase.java 
b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
index 026a376d4b..2cb7d73e00 100644
--- a/java/org/apache/catalina/authenticator/AuthenticatorBase.java
+++ b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
@@ -262,7 +262,7 @@ public abstract class AuthenticatorBase extends ValveBase 
implements Authenticat
      */
     public void setSsoReauthenticationMode(String ssoReauthenticationMode) {
         this.ssoReauthenticationMode =
-                
SsoReauthenticationMode.valueOf(ssoReauthenticationMode.trim().toUpperCase(Locale.ENGLISH));
+                
SsoReauthenticationMode.valueOf(ssoReauthenticationMode.strip().toUpperCase(Locale.ENGLISH));
     }
 
     /**
@@ -280,7 +280,7 @@ public abstract class AuthenticatorBase extends ValveBase 
implements Authenticat
      * @param allowCorsPreflight the CORS preflight handling mode
      */
     public void setAllowCorsPreflight(String allowCorsPreflight) {
-        this.allowCorsPreflight = 
AllowCorsPreflight.valueOf(allowCorsPreflight.trim().toUpperCase(Locale.ENGLISH));
+        this.allowCorsPreflight = 
AllowCorsPreflight.valueOf(allowCorsPreflight.strip().toUpperCase(Locale.ENGLISH));
     }
 
     /**
diff --git a/java/org/apache/catalina/authenticator/SingleSignOn.java 
b/java/org/apache/catalina/authenticator/SingleSignOn.java
index cb5c66acaa..b4c828c81d 100644
--- a/java/org/apache/catalina/authenticator/SingleSignOn.java
+++ b/java/org/apache/catalina/authenticator/SingleSignOn.java
@@ -141,7 +141,7 @@ public class SingleSignOn extends ValveBase {
      * @param cookieDomain cookie domain name
      */
     public void setCookieDomain(String cookieDomain) {
-        if (cookieDomain != null && cookieDomain.trim().isEmpty()) {
+        if (cookieDomain != null && cookieDomain.strip().isEmpty()) {
             this.cookieDomain = null;
         } else {
             this.cookieDomain = cookieDomain;
diff --git a/java/org/apache/catalina/core/StandardContext.java 
b/java/org/apache/catalina/core/StandardContext.java
index 03ad79453f..35e1550d11 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -1201,7 +1201,7 @@ public class StandardContext extends ContainerBase 
implements Context, Notificat
             return;
         }
         for (String servletName : resourceOnlyServlets.split(",")) {
-            servletName = servletName.trim();
+            servletName = servletName.strip();
             if (!servletName.isEmpty()) {
                 this.resourceOnlyServlets.add(servletName);
             }
diff --git a/java/org/apache/catalina/core/StandardHost.java 
b/java/org/apache/catalina/core/StandardHost.java
index 06f215c58e..20f26a22d1 100644
--- a/java/org/apache/catalina/core/StandardHost.java
+++ b/java/org/apache/catalina/core/StandardHost.java
@@ -248,7 +248,7 @@ public class StandardHost extends ContainerBase implements 
Host {
 
     @Override
     public void setAppBase(String appBase) {
-        if (appBase.trim().isEmpty()) {
+        if (appBase.strip().isEmpty()) {
             log.warn(sm.getString("standardHost.problematicAppBase", 
getName()));
         }
         String oldAppBase = this.appBase;
@@ -297,7 +297,7 @@ public class StandardHost extends ContainerBase implements 
Host {
 
     @Override
     public void setLegacyAppBase(String legacyAppBase) {
-        if (legacyAppBase.trim().isEmpty()) {
+        if (legacyAppBase.strip().isEmpty()) {
             log.warn(sm.getString("standardHost.problematicLegacyAppBase", 
getName()));
         }
         String oldLegacyAppBase = this.legacyAppBase;
diff --git a/java/org/apache/catalina/filters/CorsFilter.java 
b/java/org/apache/catalina/filters/CorsFilter.java
index d42e07c252..dfbf9109c9 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -618,7 +618,7 @@ public class CorsFilter extends GenericFilter {
             final String allowedHttpHeaders, final String exposedHeaders, 
final String supportsCredentials,
             final String preflightMaxAge, final String decorateRequest) throws 
ServletException {
 
-        if (allowedOrigins.trim().equals("*")) {
+        if (allowedOrigins.strip().equals("*")) {
             this.anyOriginAllowed = true;
         } else {
             this.anyOriginAllowed = false;
@@ -683,7 +683,7 @@ public class CorsFilter extends GenericFilter {
 
         Set<String> set = new HashSet<>();
         for (String split : splits) {
-            set.add(split.trim());
+            set.add(split.strip());
         }
 
         return set;
diff --git a/java/org/apache/catalina/filters/CsrfPreventionFilter.java 
b/java/org/apache/catalina/filters/CsrfPreventionFilter.java
index 35aef63c5b..5f2543f015 100644
--- a/java/org/apache/catalina/filters/CsrfPreventionFilter.java
+++ b/java/org/apache/catalina/filters/CsrfPreventionFilter.java
@@ -118,7 +118,7 @@ public class CsrfPreventionFilter extends 
CsrfPreventionFilterBase {
     public void setEntryPoints(String entryPoints) {
         String[] values = entryPoints.split(",");
         for (String value : values) {
-            this.entryPoints.add(value.trim());
+            this.entryPoints.add(value.strip());
         }
     }
 
@@ -189,7 +189,7 @@ public class CsrfPreventionFilter extends 
CsrfPreventionFilterBase {
      * @return A collection of predicates representing the URL patterns.
      */
     protected static Collection<Predicate<String>> 
createNoNoncePredicates(ServletContext context, String patterns) {
-        if (null == patterns || patterns.trim().isEmpty()) {
+        if (null == patterns || patterns.strip().isEmpty()) {
             return null;
         }
 
@@ -201,7 +201,7 @@ public class CsrfPreventionFilter extends 
CsrfPreventionFilterBase {
 
         ArrayList<Predicate<String>> matchers = new ArrayList<>(values.length);
         for (String value : values) {
-            Predicate<String> p = createNoNoncePredicate(context, 
value.trim());
+            Predicate<String> p = createNoNoncePredicate(context, 
value.strip());
 
             if (null != p) {
                 matchers.add(p);
@@ -222,7 +222,7 @@ public class CsrfPreventionFilter extends 
CsrfPreventionFilterBase {
      * @return A Predicate which can match the specified pattern, or 
<code>null</code> if the pattern is null or blank.
      */
     protected static Predicate<String> createNoNoncePredicate(ServletContext 
context, String pattern) {
-        if (null == pattern || pattern.trim().isEmpty()) {
+        if (null == pattern || pattern.strip().isEmpty()) {
             return null;
         }
         if (pattern.startsWith("mime:")) {
diff --git a/java/org/apache/catalina/filters/ExpiresFilter.java 
b/java/org/apache/catalina/filters/ExpiresFilter.java
index 9151e0882d..1e140d2ce8 100644
--- a/java/org/apache/catalina/filters/ExpiresFilter.java
+++ b/java/org/apache/catalina/filters/ExpiresFilter.java
@@ -1440,7 +1440,7 @@ public class ExpiresFilter extends FilterBase {
             try {
                 if (name.startsWith(PARAMETER_EXPIRES_BY_TYPE)) {
                     String contentType =
-                            
name.substring(PARAMETER_EXPIRES_BY_TYPE.length()).trim().toLowerCase(Locale.ENGLISH);
+                            
name.substring(PARAMETER_EXPIRES_BY_TYPE.length()).strip().toLowerCase(Locale.ENGLISH);
                     ExpiresConfiguration expiresConfiguration = 
parseExpiresConfiguration(value);
                     this.expiresConfigurationByContentType.put(contentType, 
expiresConfiguration);
                 } else if (name.equalsIgnoreCase(PARAMETER_EXPIRES_DEFAULT)) {
@@ -1572,7 +1572,7 @@ public class ExpiresFilter extends FilterBase {
      * @return the parsed expires
      */
     protected ExpiresConfiguration parseExpiresConfiguration(String inputLine) 
{
-        String line = inputLine.trim();
+        String line = inputLine.strip();
 
         StringTokenizer tokenizer = new StringTokenizer(line, " ");
 
diff --git a/java/org/apache/catalina/filters/RateLimitFilter.java 
b/java/org/apache/catalina/filters/RateLimitFilter.java
index 5133bcb33f..61cbd02fce 100644
--- a/java/org/apache/catalina/filters/RateLimitFilter.java
+++ b/java/org/apache/catalina/filters/RateLimitFilter.java
@@ -264,7 +264,7 @@ public class RateLimitFilter extends FilterBase {
         rateLimiter.setFilterConfig(filterConfig);
 
         if (policyName != null) {
-            String trimmedName = policyName.trim();
+            String trimmedName = policyName.strip();
             if (!trimmedName.isEmpty()) {
                 rateLimiter.setPolicyName(trimmedName);
             }
diff --git a/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java 
b/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
index d56d8683af..d12d033a96 100644
--- a/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
+++ b/java/org/apache/catalina/filters/RestCsrfPreventionFilter.java
@@ -248,7 +248,7 @@ public class RestCsrfPreventionFilter extends 
CsrfPreventionFilterBase {
      */
     public void setPathsAcceptingParams(String pathsList) {
         if (Objects.nonNull(pathsList)) {
-            Arrays.asList(pathsList.split(pathsDelimiter)).forEach(e -> 
pathsAcceptingParams.add(e.trim()));
+            Arrays.asList(pathsList.split(pathsDelimiter)).forEach(e -> 
pathsAcceptingParams.add(e.strip()));
         }
     }
 
diff --git a/java/org/apache/catalina/ha/backend/TcpSender.java 
b/java/org/apache/catalina/ha/backend/TcpSender.java
index 1597090e18..d430b86b7b 100644
--- a/java/org/apache/catalina/ha/backend/TcpSender.java
+++ b/java/org/apache/catalina/ha/backend/TcpSender.java
@@ -108,7 +108,7 @@ public class TcpSender implements Sender {
         proxies = new Proxy[tok.countTokens()];
         int i = 0;
         while (tok.hasMoreTokens()) {
-            String token = tok.nextToken().trim();
+            String token = tok.nextToken().strip();
             int pos = token.indexOf(':');
             if (pos <= 0) {
                 throw new 
Exception(sm.getString("tcpSender.invalidProxyList"));
diff --git a/java/org/apache/catalina/manager/HTMLManagerServlet.java 
b/java/org/apache/catalina/manager/HTMLManagerServlet.java
index 6cbb793fa6..8e5f28574d 100644
--- a/java/org/apache/catalina/manager/HTMLManagerServlet.java
+++ b/java/org/apache/catalina/manager/HTMLManagerServlet.java
@@ -953,7 +953,7 @@ public class HTMLManagerServlet extends ManagerServlet {
         List<Session> sessions = getSessionsForName(cn, smClient);
         String sortBy = req.getParameter("sort");
         String orderBy = null;
-        if (null != sortBy && !sortBy.trim().isEmpty()) {
+        if (null != sortBy && !sortBy.strip().isEmpty()) {
             Comparator<Session> comparator = getComparator(sortBy);
             if (comparator != null) {
                 orderBy = req.getParameter("order");
diff --git a/java/org/apache/catalina/realm/DataSourceRealm.java 
b/java/org/apache/catalina/realm/DataSourceRealm.java
index 28e7b2cfdc..8ca3d5ffcf 100644
--- a/java/org/apache/catalina/realm/DataSourceRealm.java
+++ b/java/org/apache/catalina/realm/DataSourceRealm.java
@@ -447,7 +447,7 @@ public class DataSourceRealm extends RealmBase {
                     dbCredentials = rs.getString(1);
                 }
 
-                return (dbCredentials != null) ? dbCredentials.trim() : null;
+                return (dbCredentials != null) ? dbCredentials.strip() : null;
             }
         } catch (SQLException e) {
             
containerLog.error(sm.getString("dataSourceRealm.getPassword.exception", 
username), e);
@@ -551,7 +551,7 @@ public class DataSourceRealm extends RealmBase {
                 while (rs.next()) {
                     String role = rs.getString(1);
                     if (role != null) {
-                        list.add(role.trim());
+                        list.add(role.strip());
                     }
                 }
                 return list;
diff --git a/java/org/apache/catalina/realm/JNDIRealm.java 
b/java/org/apache/catalina/realm/JNDIRealm.java
index ec3474b4de..eeb6baa554 100644
--- a/java/org/apache/catalina/realm/JNDIRealm.java
+++ b/java/org/apache/catalina/realm/JNDIRealm.java
@@ -1089,7 +1089,7 @@ public class JNDIRealm extends RealmBase {
         if (cipherSuites == null || cipherSuitesArray != null) {
             return cipherSuitesArray;
         }
-        this.cipherSuites = this.cipherSuites.trim();
+        this.cipherSuites = this.cipherSuites.strip();
         if (this.cipherSuites.isEmpty()) {
             containerLog.warn(sm.getString("jndiRealm.emptyCipherSuites"));
             this.cipherSuitesArray = null;
@@ -1156,7 +1156,7 @@ public class JNDIRealm extends RealmBase {
      */
     public void setHostnameVerifierClassName(String verifierClassName) {
         if (verifierClassName != null) {
-            this.hostNameVerifierClassName = verifierClassName.trim();
+            this.hostNameVerifierClassName = verifierClassName.strip();
         } else {
             this.hostNameVerifierClassName = null;
         }
@@ -2732,7 +2732,7 @@ public class JNDIRealm extends RealmBase {
             return sslSocketFactory;
         }
         final SSLSocketFactory result;
-        if (this.sslSocketFactoryClassName != null && 
!sslSocketFactoryClassName.trim().isEmpty()) {
+        if (this.sslSocketFactoryClassName != null && 
!sslSocketFactoryClassName.strip().isEmpty()) {
             result = 
createSSLSocketFactoryFromClassName(this.sslSocketFactoryClassName);
         } else {
             result = createSSLContextFactoryFromProtocol(sslProtocol);
diff --git a/java/org/apache/catalina/realm/MemoryRealm.java 
b/java/org/apache/catalina/realm/MemoryRealm.java
index c9cc537fc9..98a02f8e46 100644
--- a/java/org/apache/catalina/realm/MemoryRealm.java
+++ b/java/org/apache/catalina/realm/MemoryRealm.java
@@ -173,7 +173,7 @@ public class MemoryRealm extends RealmBase {
                 if (comma < 0) {
                     break;
                 }
-                String role = roles.substring(0, comma).trim();
+                String role = roles.substring(0, comma).strip();
                 if (!role.isEmpty()) {
                     list.add(role);
                 }
diff --git a/java/org/apache/catalina/realm/RealmBase.java 
b/java/org/apache/catalina/realm/RealmBase.java
index 1ab00452cd..313a8cc769 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -944,7 +944,7 @@ public abstract class RealmBase extends LifecycleMBeanBase 
implements Realm {
         }
         List<String> attrs = new ArrayList<>();
         for (String name : userAttributes.split(USER_ATTRIBUTES_DELIMITER)) {
-            name = name.trim();
+            name = name.strip();
             if (name.isEmpty()) {
                 continue;
             }
@@ -1609,7 +1609,7 @@ public abstract class RealmBase extends 
LifecycleMBeanBase implements Realm {
     }
 
     private static X509UsernameRetriever createUsernameRetriever(String 
className) throws LifecycleException {
-        if (null == className || className.trim().isEmpty()) {
+        if (null == className || className.strip().isEmpty()) {
             return new X509SubjectDnRetriever();
         }
 
diff --git a/java/org/apache/catalina/security/SecurityListener.java 
b/java/org/apache/catalina/security/SecurityListener.java
index c14405bad7..6f10bc4034 100644
--- a/java/org/apache/catalina/security/SecurityListener.java
+++ b/java/org/apache/catalina/security/SecurityListener.java
@@ -101,7 +101,7 @@ public class SecurityListener implements LifecycleListener {
         } else {
             String[] userNames = userNameList.split(",");
             for (String userName : userNames) {
-                userName = userName.trim();
+                userName = userName.strip();
                 if (!userName.isEmpty()) {
                     
checkedOsUsers.add(userName.toLowerCase(Locale.getDefault()));
                 }
diff --git a/java/org/apache/catalina/servlets/CGIServlet.java 
b/java/org/apache/catalina/servlets/CGIServlet.java
index 76127c5e1d..d32faba9f2 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -356,13 +356,13 @@ public final class CGIServlet extends HttpServlet {
 
         if (getServletConfig().getInitParameter("cgiMethods") != null) {
             String paramValue = 
getServletConfig().getInitParameter("cgiMethods");
-            paramValue = paramValue.trim();
+            paramValue = paramValue.strip();
             if ("*".equals(paramValue)) {
                 cgiMethodsAll = true;
             } else {
                 String[] methods = paramValue.split(",");
                 for (String method : methods) {
-                    String trimmedMethod = method.trim();
+                    String trimmedMethod = method.strip();
                     cgiMethods.add(trimmedMethod);
                 }
             }
diff --git a/java/org/apache/catalina/servlets/DefaultServlet.java 
b/java/org/apache/catalina/servlets/DefaultServlet.java
index 42b363de21..e0cd75eae9 100644
--- a/java/org/apache/catalina/servlets/DefaultServlet.java
+++ b/java/org/apache/catalina/servlets/DefaultServlet.java
@@ -3010,7 +3010,7 @@ public class DefaultServlet extends HttpServlet {
          * @return An Order specifying the column and ascending/descending to 
be applied to resources.
          */
         public Order getOrder(String order) {
-            if (null == order || order.trim().isEmpty()) {
+            if (null == order || order.strip().isEmpty()) {
                 return Order.DEFAULT;
             }
 
@@ -3024,7 +3024,7 @@ public class DefaultServlet extends HttpServlet {
             boolean ascending = false;
 
             for (String option : options) {
-                option = option.trim();
+                option = option.strip();
 
                 if (2 < option.length()) {
                     char opt = option.charAt(0);
diff --git a/java/org/apache/catalina/session/DataSourceStore.java 
b/java/org/apache/catalina/session/DataSourceStore.java
index 8e87813977..b60ead741c 100644
--- a/java/org/apache/catalina/session/DataSourceStore.java
+++ b/java/org/apache/catalina/session/DataSourceStore.java
@@ -298,7 +298,7 @@ public class DataSourceStore extends StoreBase {
      * @param dataSourceName The JNDI name of the DataSource-factory
      */
     public void setDataSourceName(String dataSourceName) {
-        if (dataSourceName == null || dataSourceName.trim().isEmpty()) {
+        if (dataSourceName == null || dataSourceName.strip().isEmpty()) {
             manager.getContext().getLogger().warn(sm.getString(getStoreName() 
+ ".missingDataSourceName"));
             return;
         }
diff --git a/java/org/apache/catalina/ssi/ExpressionTokenizer.java 
b/java/org/apache/catalina/ssi/ExpressionTokenizer.java
index 981a85fe4b..f48b563155 100644
--- a/java/org/apache/catalina/ssi/ExpressionTokenizer.java
+++ b/java/org/apache/catalina/ssi/ExpressionTokenizer.java
@@ -62,7 +62,7 @@ public class ExpressionTokenizer {
      * @param expr The expression
      */
     public ExpressionTokenizer(String expr) {
-        this.expr = expr.trim().toCharArray();
+        this.expr = expr.strip().toCharArray();
         this.length = this.expr.length;
     }
 
diff --git a/java/org/apache/catalina/ssi/SSIProcessor.java 
b/java/org/apache/catalina/ssi/SSIProcessor.java
index ca0a4aa41d..6441bf5612 100644
--- a/java/org/apache/catalina/ssi/SSIProcessor.java
+++ b/java/org/apache/catalina/ssi/SSIProcessor.java
@@ -252,7 +252,7 @@ public class SSIProcessor {
                     collectingName = false;
                 }
             } else if (endQuote == 0 && c == '=') {
-                retString[idx++] = nameBuf.toString().trim();
+                retString[idx++] = nameBuf.toString().strip();
                 nameBuf.setLength(0);
                 collectingName = false;
             } else if (endQuote == 0) {
diff --git a/java/org/apache/catalina/startup/Bootstrap.java 
b/java/org/apache/catalina/startup/Bootstrap.java
index 05e213f47a..b3162e9926 100644
--- a/java/org/apache/catalina/startup/Bootstrap.java
+++ b/java/org/apache/catalina/startup/Bootstrap.java
@@ -583,7 +583,7 @@ public final class Bootstrap {
         while (matcher.find()) {
             String path = value.substring(matcher.start(), matcher.end());
 
-            path = path.trim();
+            path = path.strip();
             if (path.isEmpty()) {
                 continue;
             }
@@ -593,7 +593,7 @@ public final class Bootstrap {
 
             if (first == '"' && last == '"' && path.length() > 1) {
                 path = path.substring(1, path.length() - 1);
-                path = path.trim();
+                path = path.strip();
                 if (path.isEmpty()) {
                     continue;
                 }
diff --git a/java/org/apache/catalina/startup/WebappServiceLoader.java 
b/java/org/apache/catalina/startup/WebappServiceLoader.java
index 95c68e7777..3c018a17d4 100644
--- a/java/org/apache/catalina/startup/WebappServiceLoader.java
+++ b/java/org/apache/catalina/startup/WebappServiceLoader.java
@@ -213,7 +213,7 @@ public class WebappServiceLoader<T> {
                 if (i >= 0) {
                     line = line.substring(0, i);
                 }
-                line = line.trim();
+                line = line.strip();
                 if (line.isEmpty()) {
                     continue;
                 }
diff --git a/java/org/apache/catalina/storeconfig/XMLFormatPreserver.java 
b/java/org/apache/catalina/storeconfig/XMLFormatPreserver.java
index efdc7cce7f..4850a0565a 100644
--- a/java/org/apache/catalina/storeconfig/XMLFormatPreserver.java
+++ b/java/org/apache/catalina/storeconfig/XMLFormatPreserver.java
@@ -285,8 +285,8 @@ public final class XMLFormatPreserver {
         }
         String freshText = fresh.getText();
         String candidateText = candidate.getText();
-        if (freshText != null && !freshText.trim().isEmpty()
-                && Objects.equals(freshText.trim(), candidateText == null ? 
null : candidateText.trim())) {
+        if (freshText != null && !freshText.strip().isEmpty()
+                && Objects.equals(freshText.strip(), candidateText == null ? 
null : candidateText.strip())) {
             score += 50;
         }
         return score;
@@ -346,7 +346,7 @@ public final class XMLFormatPreserver {
         }
         boolean hasChildren = !fresh.children.isEmpty();
         String text = fresh.getText();
-        boolean hasText = text != null && !text.trim().isEmpty();
+        boolean hasText = text != null && !text.strip().isEmpty();
         // Reproduce the attribute line wrapping of StoreAppender: the 
position starts at the indentation level and
         // the attributes are wrapped on a new line once the position exceeds 
60 characters
         int position = indent;
@@ -483,8 +483,8 @@ public final class XMLFormatPreserver {
         // Only the significant text is compared: whitespace between child 
elements is layout, not content
         String aText = a.getText();
         String bText = b.getText();
-        String aTrimmed = (aText == null || aText.trim().isEmpty()) ? null : 
aText.trim();
-        String bTrimmed = (bText == null || bText.trim().isEmpty()) ? null : 
bText.trim();
+        String aTrimmed = (aText == null || aText.strip().isEmpty()) ? null : 
aText.strip();
+        String bTrimmed = (bText == null || bText.strip().isEmpty()) ? null : 
bText.strip();
         if (!Objects.equals(aTrimmed, bTrimmed)) {
             return false;
         }
diff --git 
a/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java 
b/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java
index d3e206635c..f073442657 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/EncryptInterceptor.java
@@ -248,7 +248,7 @@ public class EncryptInterceptor extends 
ChannelInterceptorBase implements Encryp
         if (null == keyBytes) {
             setEncryptionKey((byte[]) null);
         } else {
-            setEncryptionKey(fromHexString(keyBytes.trim()));
+            setEncryptionKey(fromHexString(keyBytes.strip()));
         }
     }
 
diff --git a/java/org/apache/catalina/users/DataSourceUserDatabase.java 
b/java/org/apache/catalina/users/DataSourceUserDatabase.java
index 2bbeb8c685..aeaefc566a 100644
--- a/java/org/apache/catalina/users/DataSourceUserDatabase.java
+++ b/java/org/apache/catalina/users/DataSourceUserDatabase.java
@@ -940,7 +940,7 @@ public class DataSourceUserDatabase extends 
SparseUserDatabase {
                     return null;
                 }
 
-                dbCredentials = (dbCredentials != null) ? dbCredentials.trim() 
: null;
+                dbCredentials = (dbCredentials != null) ? 
dbCredentials.strip() : null;
             }
         } catch (SQLException e) {
             log.error(sm.getString("dataSourceUserDatabase.exception"), e);
diff --git a/java/org/apache/catalina/users/MemoryUserDatabase.java 
b/java/org/apache/catalina/users/MemoryUserDatabase.java
index 22294dc729..1ededac7b1 100644
--- a/java/org/apache/catalina/users/MemoryUserDatabase.java
+++ b/java/org/apache/catalina/users/MemoryUserDatabase.java
@@ -700,10 +700,10 @@ class MemoryGroupCreationFactory extends 
AbstractObjectCreationFactory {
                 String rolename;
                 int comma = roles.indexOf(',');
                 if (comma >= 0) {
-                    rolename = roles.substring(0, comma).trim();
+                    rolename = roles.substring(0, comma).strip();
                     roles = roles.substring(comma + 1);
                 } else {
-                    rolename = roles.trim();
+                    rolename = roles.strip();
                     roles = "";
                 }
                 if (!rolename.isEmpty()) {
@@ -789,10 +789,10 @@ class MemoryUserCreationFactory extends 
AbstractObjectCreationFactory {
                 String groupname;
                 int comma = groups.indexOf(',');
                 if (comma >= 0) {
-                    groupname = groups.substring(0, comma).trim();
+                    groupname = groups.substring(0, comma).strip();
                     groups = groups.substring(comma + 1);
                 } else {
-                    groupname = groups.trim();
+                    groupname = groups.strip();
                     groups = "";
                 }
                 if (!groupname.isEmpty()) {
@@ -809,10 +809,10 @@ class MemoryUserCreationFactory extends 
AbstractObjectCreationFactory {
                 String rolename;
                 int comma = roles.indexOf(',');
                 if (comma >= 0) {
-                    rolename = roles.substring(0, comma).trim();
+                    rolename = roles.substring(0, comma).strip();
                     roles = roles.substring(comma + 1);
                 } else {
-                    rolename = roles.trim();
+                    rolename = roles.strip();
                     roles = "";
                 }
                 if (!rolename.isEmpty()) {
diff --git a/java/org/apache/catalina/valves/ParameterLimitValve.java 
b/java/org/apache/catalina/valves/ParameterLimitValve.java
index c0b44d85f5..71b57a87dd 100644
--- a/java/org/apache/catalina/valves/ParameterLimitValve.java
+++ b/java/org/apache/catalina/valves/ParameterLimitValve.java
@@ -248,7 +248,7 @@ public class ParameterLimitValve extends ValveBase {
             String line;
             while ((line = reader.readLine()) != null) {
                 // Trim whitespace from the line
-                line = line.trim();
+                line = line.strip();
                 if (line.isEmpty() || line.startsWith("#")) {
                     // Skip empty lines or comments
                     continue;
@@ -259,8 +259,8 @@ public class ParameterLimitValve extends ValveBase {
                     throw new 
IllegalArgumentException(sm.getString("parameterLimitValve.invalidLine", line));
                 }
 
-                String patternString = line.substring(0, 
lastEqualsIndex).trim();
-                String limitsString = line.substring(lastEqualsIndex + 
1).trim();
+                String patternString = line.substring(0, 
lastEqualsIndex).strip();
+                String limitsString = line.substring(lastEqualsIndex + 
1).strip();
 
                 Pattern pattern = 
Pattern.compile(UDecoder.URLDecode(patternString, StandardCharsets.UTF_8));
                 String[] limits = limitsString.split(",");
diff --git 
a/java/org/apache/catalina/valves/rewrite/RandomizedTextRewriteMap.java 
b/java/org/apache/catalina/valves/rewrite/RandomizedTextRewriteMap.java
index d809a77f9a..b25c0b04e8 100644
--- a/java/org/apache/catalina/valves/rewrite/RandomizedTextRewriteMap.java
+++ b/java/org/apache/catalina/valves/rewrite/RandomizedTextRewriteMap.java
@@ -52,13 +52,13 @@ public class RandomizedTextRewriteMap implements RewriteMap 
{
         try (Resource txtResource = 
ConfigFileLoader.getSource().getResource(txtFilePath);
                 BufferedReader reader = new BufferedReader(new 
InputStreamReader(txtResource.getInputStream()))) {
             while ((line = reader.readLine()) != null) {
-                line = line.trim();
+                line = line.strip();
                 if (line.startsWith("#") || line.isEmpty()) {
                     // Ignore comment line or empty lines
                     continue;
                 } else if (line.indexOf('#') > 0) {
                     // Ignore comment characters after '#'
-                    line = line.substring(0, line.indexOf('#')).trim();
+                    line = line.substring(0, line.indexOf('#')).strip();
                 }
                 // Like mod_rewrite, any whitespace separates the key from the
                 // value. The value may itself contain whitespace.
diff --git a/java/org/apache/catalina/valves/rewrite/ResolverImpl.java 
b/java/org/apache/catalina/valves/rewrite/ResolverImpl.java
index 01d1ef0679..2f8ec7c361 100644
--- a/java/org/apache/catalina/valves/rewrite/ResolverImpl.java
+++ b/java/org/apache/catalina/valves/rewrite/ResolverImpl.java
@@ -318,7 +318,7 @@ public class ResolverImpl extends Resolver {
                 break;
             }
 
-            String key = unescape(fullDN.substring(start, eqPos)).trim();
+            String key = unescape(fullDN.substring(start, eqPos)).strip();
             int valStart = eqPos + 1;
 
             // Find the unescaped ',' that ends this RDN, or end of string
@@ -333,7 +333,7 @@ public class ResolverImpl extends Resolver {
                 }
             }
 
-            String value = unescape(fullDN.substring(valStart, 
commaPos)).trim();
+            String value = unescape(fullDN.substring(valStart, 
commaPos)).strip();
             if (!key.isEmpty()) {
                 components.put(key, value);
             }
diff --git a/java/org/apache/coyote/CompressionConfig.java 
b/java/org/apache/coyote/CompressionConfig.java
index 4a3d939bf0..6860c8caea 100644
--- a/java/org/apache/coyote/CompressionConfig.java
+++ b/java/org/apache/coyote/CompressionConfig.java
@@ -84,7 +84,7 @@ public class CompressionConfig {
         if (encodings != null && !encodings.isEmpty()) {
             StringTokenizer tokens = new StringTokenizer(encodings, ",");
             while (tokens.hasMoreTokens()) {
-                String token = tokens.nextToken().trim();
+                String token = tokens.nextToken().strip();
                 if (!token.isEmpty()) {
                     newEncodings.add(token);
                 }
@@ -104,7 +104,7 @@ public class CompressionConfig {
     public void setCompression(String compression) {
         // Trim the value so that surrounding whitespace in the configuration
         // does not silently disable compression
-        String value = compression == null ? "" : compression.trim();
+        String value = compression == null ? "" : compression.strip();
         switch (value) {
             case "on" -> this.compressionLevel = 1;
             case "force" -> this.compressionLevel = 2;
@@ -226,7 +226,7 @@ public class CompressionConfig {
         List<String> values = new ArrayList<>();
         StringTokenizer tokens = new StringTokenizer(compressibleMimeType, 
",");
         while (tokens.hasMoreTokens()) {
-            String token = tokens.nextToken().trim();
+            String token = tokens.nextToken().strip();
             if (!token.isEmpty()) {
                 values.add(token);
             }
diff --git a/java/org/apache/jasper/compiler/ELParser.java 
b/java/org/apache/jasper/compiler/ELParser.java
index 3571a8fdd5..fc4823b97b 100644
--- a/java/org/apache/jasper/compiler/ELParser.java
+++ b/java/org/apache/jasper/compiler/ELParser.java
@@ -269,7 +269,7 @@ public class ELParser {
         int end = len;
 
         // Look to see if the value is quoted
-        String trimmed = input.trim();
+        String trimmed = input.strip();
         int trimmedLen = trimmed.length();
         if (trimmedLen > 1) {
             // Might be quoted
diff --git a/java/org/apache/jasper/compiler/Generator.java 
b/java/org/apache/jasper/compiler/Generator.java
index bfd2b376ae..a9127bf29f 100644
--- a/java/org/apache/jasper/compiler/Generator.java
+++ b/java/org/apache/jasper/compiler/Generator.java
@@ -574,7 +574,7 @@ class Generator {
         Set<String> packages = new LinkedHashSet<>();
         Set<String> classes = new LinkedHashSet<>();
         for (String importName : imports) {
-            String trimmed = importName.trim();
+            String trimmed = importName.strip();
             if (trimmed.endsWith(".*")) {
                 packages.add(trimmed.substring(0, trimmed.length() - 2));
             } else {
@@ -1813,7 +1813,7 @@ class Generator {
                     String revisedText = matcher.replaceAll("\n");
                     // Leading and trailing whitespace can be trimmed so remove
                     // it here as the regex won't remove it.
-                    text = revisedText.trim();
+                    text = revisedText.strip();
                 }
             }
 
diff --git a/java/org/apache/jasper/compiler/JavacErrorDetail.java 
b/java/org/apache/jasper/compiler/JavacErrorDetail.java
index 158425a4dc..037c882b5d 100644
--- a/java/org/apache/jasper/compiler/JavacErrorDetail.java
+++ b/java/org/apache/jasper/compiler/JavacErrorDetail.java
@@ -113,7 +113,7 @@ public class JavacErrorDetail {
                     // faulty. Scan forward to match the java line...
                     if (jspLines[jspBeginLineNum - 1].lastIndexOf("<%") > 
jspLines[jspBeginLineNum - 1]
                             .lastIndexOf("%>")) {
-                        String javaLine = javaLines[javaLineNum - 1].trim();
+                        String javaLine = javaLines[javaLineNum - 1].strip();
 
                         for (int i = jspBeginLineNum - 1; i < jspLines.length; 
i++) {
                             if (jspLines[i].contains(javaLine)) {
diff --git a/java/org/apache/jasper/compiler/Node.java 
b/java/org/apache/jasper/compiler/Node.java
index b09e82bd6b..0a42b8a607 100644
--- a/java/org/apache/jasper/compiler/Node.java
+++ b/java/org/apache/jasper/compiler/Node.java
@@ -745,7 +745,7 @@ public abstract class Node implements TagConstants {
             if (importEntry.indexOf(';') > -1) {
                 throw new 
IllegalArgumentException(Localizer.getMessage("jsp.error.page.invalid.import"));
             }
-            return importEntry.trim();
+            return importEntry.strip();
         }
     }
 
@@ -815,14 +815,14 @@ public abstract class Node implements TagConstants {
             int start = 0;
             int index;
             while ((index = value.indexOf(',', start)) != -1) {
-                imports.add(value.substring(start, index).trim());
+                imports.add(value.substring(start, index).strip());
                 start = index + 1;
             }
             if (start == 0) {
                 // No comma found
-                imports.add(value.trim());
+                imports.add(value.strip());
             } else {
-                imports.add(value.substring(start).trim());
+                imports.add(value.substring(start).strip());
             }
         }
 
@@ -2628,9 +2628,9 @@ public abstract class Node implements TagConstants {
                 } else if (this.isDeferredMethodInput()) {
                     String m = this.tai.getMethodSignature();
                     if (m != null) {
-                        int rti = m.trim().indexOf(' ');
+                        int rti = m.strip().indexOf(' ');
                         if (rti > 0) {
-                            return m.substring(0, rti).trim();
+                            return m.substring(0, rti).strip();
                         }
                     }
                 }
@@ -2648,13 +2648,13 @@ public abstract class Node implements TagConstants {
                 if (this.isDeferredMethodInput()) {
                     String m = this.tai.getMethodSignature();
                     if (m != null) {
-                        m = m.trim();
+                        m = m.strip();
                         m = m.substring(m.indexOf('(') + 1);
                         m = m.substring(0, m.length() - 1);
-                        if (!m.trim().isEmpty()) {
+                        if (!m.strip().isEmpty()) {
                             String[] p = m.split(",");
                             for (int i = 0; i < p.length; i++) {
-                                p[i] = p[i].trim();
+                                p[i] = p[i].strip();
                             }
                             return p;
                         }
diff --git a/java/org/apache/jasper/compiler/SmapUtil.java 
b/java/org/apache/jasper/compiler/SmapUtil.java
index b300105e57..fb997ff06f 100644
--- a/java/org/apache/jasper/compiler/SmapUtil.java
+++ b/java/org/apache/jasper/compiler/SmapUtil.java
@@ -630,7 +630,7 @@ public class SmapUtil {
             // beginning of the text.
             while ((next = text.indexOf('\n', index)) > -1) {
                 if (beginning) {
-                    String line = text.substring(index, next).trim();
+                    String line = text.substring(index, next).strip();
                     if (!slashStarSeen && line.startsWith("/*")) {
                         slashStarSeen = true;
                     }
diff --git a/java/org/apache/jasper/compiler/Validator.java 
b/java/org/apache/jasper/compiler/Validator.java
index fd085cd208..4a3441e00f 100644
--- a/java/org/apache/jasper/compiler/Validator.java
+++ b/java/org/apache/jasper/compiler/Validator.java
@@ -996,10 +996,10 @@ class Validator {
                                     // for the attribute
                                     String m = tldAttr.getMethodSignature();
                                     if (m != null) {
-                                        m = m.trim();
+                                        m = m.strip();
                                         int rti = m.indexOf(' ');
                                         if (rti > 0) {
-                                            expectedType = m.substring(0, 
rti).trim();
+                                            expectedType = m.substring(0, 
rti).strip();
                                         }
                                     } else {
                                         expectedType = "java.lang.Object";
@@ -1444,7 +1444,7 @@ class Validator {
                     }
                     lastArg = true;
                 }
-                String arg = signature.substring(start, p).trim();
+                String arg = signature.substring(start, p).strip();
                 if (!arg.isEmpty()) {
                     params.add(arg);
                 }
diff --git a/java/org/apache/jasper/tagplugins/jstl/Util.java 
b/java/org/apache/jasper/tagplugins/jstl/Util.java
index f453c4a497..9c8f8054e4 100644
--- a/java/org/apache/jasper/tagplugins/jstl/Util.java
+++ b/java/org/apache/jasper/tagplugins/jstl/Util.java
@@ -139,7 +139,7 @@ public class Util {
             return null;
         }
         index += 1; // positioned after the '='
-        input = input.substring(index).trim();
+        input = input.substring(index).strip();
         if (input.isEmpty()) {
             // Empty or whitespace-only parameter value, e.g. a malformed
             // "Content-Type: text/html;charset=" header from a remote server.
@@ -163,7 +163,7 @@ public class Util {
                 end = input.length();
             }
         }
-        return input.substring(begin, end).trim();
+        return input.substring(begin, end).strip();
     }
 
     /**
diff --git a/java/org/apache/juli/ClassLoaderLogManager.java 
b/java/org/apache/juli/ClassLoaderLogManager.java
index c9da071977..00109ea534 100644
--- a/java/org/apache/juli/ClassLoaderLogManager.java
+++ b/java/org/apache/juli/ClassLoaderLogManager.java
@@ -184,7 +184,7 @@ public class ClassLoaderLogManager extends LogManager {
     private void applyLevel(Logger logger) {
         String levelString = getProperty(logger.getName() + ".level");
         if (levelString != null) {
-            logger.setLevel(Level.parse(levelString.trim()));
+            logger.setLevel(Level.parse(levelString.strip()));
         }
     }
 
@@ -196,7 +196,7 @@ public class ClassLoaderLogManager extends LogManager {
      */
     private void resetLevel(Logger logger) {
         String levelString = getProperty(logger.getName() + ".level");
-        logger.setLevel(levelString == null ? null : 
Level.parse(levelString.trim()));
+        logger.setLevel(levelString == null ? null : 
Level.parse(levelString.strip()));
     }
 
 
@@ -212,7 +212,7 @@ public class ClassLoaderLogManager extends LogManager {
             logger.setUseParentHandlers(false);
             StringTokenizer tok = new StringTokenizer(handlers, ",");
             while (tok.hasMoreTokens()) {
-                String handlerName = (tok.nextToken().trim());
+                String handlerName = (tok.nextToken().strip());
                 Handler handler = null;
                 ClassLoader current = classLoader;
                 while (current != null) {
@@ -674,7 +674,7 @@ public class ClassLoaderLogManager extends LogManager {
         if (handlers != null) {
             StringTokenizer tok = new StringTokenizer(handlers, ",");
             while (tok.hasMoreTokens()) {
-                String handlerName = (tok.nextToken().trim());
+                String handlerName = (tok.nextToken().strip());
                 String handlerClassName = handlerName;
                 String prefix = "";
                 if (handlerClassName.isEmpty()) {
diff --git a/java/org/apache/juli/FileHandler.java 
b/java/org/apache/juli/FileHandler.java
index 04fadbd9a3..2bc787e4d0 100644
--- a/java/org/apache/juli/FileHandler.java
+++ b/java/org/apache/juli/FileHandler.java
@@ -464,7 +464,7 @@ public class FileHandler extends Handler {
         if (value == null) {
             value = defaultValue;
         } else {
-            value = value.trim();
+            value = value.strip();
         }
         return value;
     }
diff --git a/java/org/apache/tomcat/buildutil/translate/Import.java 
b/java/org/apache/tomcat/buildutil/translate/Import.java
index 0f562309a3..ff63ab2681 100644
--- a/java/org/apache/tomcat/buildutil/translate/Import.java
+++ b/java/org/apache/tomcat/buildutil/translate/Import.java
@@ -76,7 +76,7 @@ public class Import {
             String key = (String) objKey;
             String value = props.getProperty(key);
             // Skip untranslated values
-            if (value.trim().isEmpty()) {
+            if (value.strip().isEmpty()) {
                 continue;
             }
             CompositeKey cKey = new CompositeKey(key);
diff --git a/java/org/apache/tomcat/util/buf/EncodedSolidusHandling.java 
b/java/org/apache/tomcat/util/buf/EncodedSolidusHandling.java
index e9879c9139..6e03a78da1 100644
--- a/java/org/apache/tomcat/util/buf/EncodedSolidusHandling.java
+++ b/java/org/apache/tomcat/util/buf/EncodedSolidusHandling.java
@@ -67,7 +67,7 @@ public enum EncodedSolidusHandling {
      * @throws IllegalStateException if the string does not match any known 
strategy
      */
     public static EncodedSolidusHandling fromString(String from) {
-        String trimmedLower = from.trim().toLowerCase(Locale.ENGLISH);
+        String trimmedLower = from.strip().toLowerCase(Locale.ENGLISH);
 
         for (EncodedSolidusHandling value : values()) {
             if (value.getValue().equals(trimmedLower)) {
diff --git a/java/org/apache/tomcat/util/buf/StringUtils.java 
b/java/org/apache/tomcat/util/buf/StringUtils.java
index 698b21875d..abe8758da2 100644
--- a/java/org/apache/tomcat/util/buf/StringUtils.java
+++ b/java/org/apache/tomcat/util/buf/StringUtils.java
@@ -177,7 +177,7 @@ public final class StringUtils {
 
         String[] splits = s.split(",");
         for (int i = 0; i < splits.length; ++i) {
-            splits[i] = splits[i].trim();
+            splits[i] = splits[i].strip();
         }
 
         return splits;
diff --git a/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java 
b/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java
index 93052df0dd..98c9ae5cc0 100644
--- a/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java
+++ b/java/org/apache/tomcat/util/descriptor/tld/TldRuleSet.java
@@ -484,7 +484,7 @@ public class TldRuleSet implements RuleSet {
         @Override
         public void body(String namespace, String name, String text) throws 
Exception {
             if (null != text) {
-                text = text.trim();
+                text = text.strip();
             }
             boolean value = "true".equalsIgnoreCase(text) || 
"yes".equalsIgnoreCase(text);
             setter.invoke(digester.peek(), Boolean.valueOf(value));
diff --git a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java 
b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
index 2a537e3292..d6b71cc6be 100644
--- a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
+++ b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
@@ -688,7 +688,7 @@ public class SecurityConstraint implements Serializable {
                     msg.append(' ');
                 }
                 if (denyUncoveredHttpMethods) {
-                    
log.info(sm.getString("securityConstraint.uncoveredHttpMethodFix", pattern, 
msg.toString().trim()));
+                    
log.info(sm.getString("securityConstraint.uncoveredHttpMethodFix", pattern, 
msg.toString().strip()));
                     SecurityCollection collection = new SecurityCollection();
                     for (String method : methods) {
                         collection.addOmittedMethod(method);
@@ -700,7 +700,7 @@ public class SecurityConstraint implements Serializable {
                     constraint.addCollection(collection);
                     newConstraints.add(constraint);
                 } else {
-                    
log.error(sm.getString("securityConstraint.uncoveredHttpMethod", pattern, 
msg.toString().trim()));
+                    
log.error(sm.getString("securityConstraint.uncoveredHttpMethod", pattern, 
msg.toString().strip()));
                 }
                 continue;
             }
@@ -735,7 +735,7 @@ public class SecurityConstraint implements Serializable {
             }
             if (denyUncoveredHttpMethods) {
                 
log.info(sm.getString("securityConstraint.uncoveredHttpOmittedMethodFix", 
pattern,
-                        msg.toString().trim()));
+                        msg.toString().strip()));
                 SecurityCollection collection = new SecurityCollection();
                 for (String method : omittedMethods) {
                     collection.addMethod(method);
@@ -748,7 +748,7 @@ public class SecurityConstraint implements Serializable {
                 newConstraints.add(constraint);
             } else {
                 log.error(
-                        
sm.getString("securityConstraint.uncoveredHttpOmittedMethod", pattern, 
msg.toString().trim()));
+                        
sm.getString("securityConstraint.uncoveredHttpOmittedMethod", pattern, 
msg.toString().strip()));
             }
         }
     }
diff --git a/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java 
b/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
index 3fcce66220..c3ec20b200 100644
--- a/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
+++ b/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
@@ -1206,13 +1206,13 @@ final class MappedNameRule extends Rule {
     @Override
     public void body(String namespace, String name, String text) throws 
Exception {
         ResourceBase resourceBase = (ResourceBase) digester.peek();
-        resourceBase.setProperty("mappedName", text.trim());
+        resourceBase.setProperty("mappedName", text.strip());
 
         StringBuilder code = digester.getGeneratedCode();
         if (code != null) {
             code.append(System.lineSeparator());
             code.append(digester.toVariableName(resourceBase));
-            code.append(".setProperty(\"mappedName\", 
\"").append(text.trim()).append("\");");
+            code.append(".setProperty(\"mappedName\", 
\"").append(text.strip()).append("\");");
             code.append(System.lineSeparator());
         }
     }
diff --git a/java/org/apache/tomcat/util/digester/CallMethodRule.java 
b/java/org/apache/tomcat/util/digester/CallMethodRule.java
index 1f2cb4f37f..23d4aa7400 100644
--- a/java/org/apache/tomcat/util/digester/CallMethodRule.java
+++ b/java/org/apache/tomcat/util/digester/CallMethodRule.java
@@ -227,7 +227,7 @@ public class CallMethodRule extends Rule {
     public void body(String namespace, String name, String bodyText) throws 
Exception {
 
         if (paramCount == 0) {
-            this.bodyText = bodyText.trim();
+            this.bodyText = bodyText.strip();
         }
 
     }
diff --git a/java/org/apache/tomcat/util/digester/CallParamRule.java 
b/java/org/apache/tomcat/util/digester/CallParamRule.java
index 962f02cde4..f58dc8de38 100644
--- a/java/org/apache/tomcat/util/digester/CallParamRule.java
+++ b/java/org/apache/tomcat/util/digester/CallParamRule.java
@@ -157,7 +157,7 @@ public class CallParamRule extends Rule {
             if (bodyTextStack == null) {
                 bodyTextStack = new ArrayStack<>();
             }
-            bodyTextStack.push(bodyText.trim());
+            bodyTextStack.push(bodyText.strip());
         }
 
     }
diff --git a/java/org/apache/tomcat/util/digester/Digester.java 
b/java/org/apache/tomcat/util/digester/Digester.java
index 4690c3991e..eca47330e9 100644
--- a/java/org/apache/tomcat/util/digester/Digester.java
+++ b/java/org/apache/tomcat/util/digester/Digester.java
@@ -99,7 +99,7 @@ public class Digester extends DefaultHandler2 {
         if (classNames != null) {
             StringTokenizer classNamesTokenizer = new 
StringTokenizer(classNames, ",");
             while (classNamesTokenizer.hasMoreTokens()) {
-                String className = classNamesTokenizer.nextToken().trim();
+                String className = classNamesTokenizer.nextToken().strip();
                 ClassLoader[] cls = new ClassLoader[] { 
Digester.class.getClassLoader(),
                         Thread.currentThread().getContextClassLoader() };
                 for (ClassLoader cl : cls) {
diff --git a/java/org/apache/tomcat/util/http/CookiesWithoutEquals.java 
b/java/org/apache/tomcat/util/http/CookiesWithoutEquals.java
index 74a71552b0..92f0699816 100644
--- a/java/org/apache/tomcat/util/http/CookiesWithoutEquals.java
+++ b/java/org/apache/tomcat/util/http/CookiesWithoutEquals.java
@@ -108,7 +108,7 @@ public enum CookiesWithoutEquals {
      * @return The corresponding enum value
      */
     public static CookiesWithoutEquals fromString(String from) {
-        String trimmedLower = from.trim().toLowerCase(Locale.ENGLISH);
+        String trimmedLower = from.strip().toLowerCase(Locale.ENGLISH);
 
         for (CookiesWithoutEquals value : values()) {
             if (value.getValue().equals(trimmedLower)) {
diff --git a/java/org/apache/tomcat/util/net/SSLHostConfig.java 
b/java/org/apache/tomcat/util/net/SSLHostConfig.java
index 94582622d0..4cc5be8b01 100644
--- a/java/org/apache/tomcat/util/net/SSLHostConfig.java
+++ b/java/org/apache/tomcat/util/net/SSLHostConfig.java
@@ -740,7 +740,7 @@ public class SSLHostConfig implements Serializable {
                 String[] components = ciphersList.split(":");
                 // Remove any TLS 1.3 cipher suites
                 for (String component : components) {
-                    String trimmed = component.trim();
+                    String trimmed = component.strip();
                     if 
(OpenSSLCipherConfigurationParser.isTls13Cipher(trimmed)) {
                         
log.warn(sm.getString("sslHostConfig.ignoreTls13Ciphersuite", trimmed));
                     } else {
@@ -757,7 +757,7 @@ public class SSLHostConfig implements Serializable {
                 StringBuilder sb = new StringBuilder();
                 String[] ciphers = ciphersList.split(",");
                 for (String cipher : ciphers) {
-                    String trimmed = cipher.trim();
+                    String trimmed = cipher.strip();
                     if (!trimmed.isEmpty()) {
                         if 
(OpenSSLCipherConfigurationParser.isTls13Cipher(trimmed)) {
                             
log.warn(sm.getString("sslHostConfig.ignoreTls13Ciphersuite", trimmed));
@@ -851,7 +851,7 @@ public class SSLHostConfig implements Serializable {
             values = cipherSuites.split(",");
         }
         for (String value : values) {
-            String trimmed = value.trim();
+            String trimmed = value.strip();
             if (!trimmed.isEmpty()) {
                 if (!OpenSSLCipherConfigurationParser.isTls13Cipher(trimmed)) {
                     
log.warn(sm.getString("sslHostConfig.ignoreNonTls13Ciphersuite", trimmed));
@@ -1037,11 +1037,11 @@ public class SSLHostConfig implements Serializable {
         // Split using a positive lookahead to keep the separator in
         // the capture so we can check which case it is.
         for (String value : input.split("(?=[-+,])")) {
-            String trimmed = value.trim();
+            String trimmed = value.strip();
             // Ignore token which only consists of prefix character
             if (trimmed.length() > 1) {
                 if (trimmed.charAt(0) == '+') {
-                    trimmed = trimmed.substring(1).trim();
+                    trimmed = trimmed.substring(1).strip();
                     if (trimmed.equalsIgnoreCase(Constants.SSL_PROTO_ALL)) {
                         protocols.addAll(SSL_PROTO_ALL_SET);
                     } else {
@@ -1049,7 +1049,7 @@ public class SSLHostConfig implements Serializable {
                         explicitlyRequestedProtocols.add(trimmed);
                     }
                 } else if (trimmed.charAt(0) == '-') {
-                    trimmed = trimmed.substring(1).trim();
+                    trimmed = trimmed.substring(1).strip();
                     if (trimmed.equalsIgnoreCase(Constants.SSL_PROTO_ALL)) {
                         protocols.removeAll(SSL_PROTO_ALL_SET);
                     } else {
@@ -1058,7 +1058,7 @@ public class SSLHostConfig implements Serializable {
                     }
                 } else {
                     if (trimmed.charAt(0) == ',') {
-                        trimmed = trimmed.substring(1).trim();
+                        trimmed = trimmed.substring(1).strip();
                     }
                     if (!protocols.isEmpty()) {
                         log.warn(sm.getString("sslHostConfig.prefix_missing", 
trimmed, getHostName()));
@@ -1164,7 +1164,7 @@ public class SSLHostConfig implements Serializable {
                 String[] groupNames = groups.split(",");
                 for (String groupName : groupNames) {
                     try {
-                        Group group = Group.valueOf(groupName.trim());
+                        Group group = Group.valueOf(groupName.strip());
                         groupList.add(group);
                     } catch (IllegalArgumentException e) {
                         log.warn(sm.getString("sslHostConfig.unknownGroup", 
groupName));
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java 
b/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java
index 6744cca901..6141930093 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java
@@ -295,7 +295,7 @@ public class StandardJarScanFilter implements JarScanFilter 
{
         if (attribute != null) {
             StringTokenizer tokenizer = new StringTokenizer(attribute, ",");
             while (tokenizer.hasMoreElements()) {
-                String token = tokenizer.nextToken().trim();
+                String token = tokenizer.nextToken().strip();
                 if (!token.isEmpty()) {
                     set.add(token);
                 }
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanner.java 
b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
index c0df03db83..846ac615e4 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanner.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
@@ -532,7 +532,7 @@ public class StandardJarScanner implements JarScanner {
             }
             String[] classPathEntries = classPathAttribute.split(" ");
             for (String classPathEntry : classPathEntries) {
-                classPathEntry = classPathEntry.trim();
+                classPathEntry = classPathEntry.strip();
                 if (classPathEntry.isEmpty()) {
                     continue;
                 }
diff --git 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/AppsApiServlet.java 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/AppsApiServlet.java
index 9c6a23d23c..638cfae5ba 100644
--- 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/AppsApiServlet.java
+++ 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/AppsApiServlet.java
@@ -357,7 +357,7 @@ public class AppsApiServlet extends HTMLManagerServlet {
             try (PrintWriter pw = new PrintWriter(validation)) {
                 if (!validateContextName(cn, pw, smClient)) {
                     Api.error(response, HttpServletResponse.SC_BAD_REQUEST, 
"INVALID_PATH",
-                            validation.toString().trim());
+                            validation.toString().strip());
                     return;
                 }
             }
@@ -441,7 +441,7 @@ public class AppsApiServlet extends HTMLManagerServlet {
 
             String sortBy = request.getParameter("sort");
             String orderBy = null;
-            if (sortBy != null && !sortBy.trim().isEmpty()) {
+            if (sortBy != null && !sortBy.strip().isEmpty()) {
                 Comparator<Session> comparator = getComparator(sortBy);
                 if (comparator != null) {
                     boolean asc = 
!"DESC".equalsIgnoreCase(request.getParameter("order"));
@@ -709,7 +709,7 @@ public class AppsApiServlet extends HTMLManagerServlet {
         try (PrintWriter writer = new PrintWriter(stringWriter)) {
             operation.run(writer);
         }
-        return stringWriter.toString().trim();
+        return stringWriter.toString().strip();
     }
 
 
diff --git 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/ConfigApiServlet.java
 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/ConfigApiServlet.java
index 25349e1b6c..52716d0d46 100644
--- 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/ConfigApiServlet.java
+++ 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/ConfigApiServlet.java
@@ -2873,17 +2873,17 @@ public class ConfigApiServlet extends HttpServlet 
implements ContainerServlet {
                     }
                     return 
Boolean.valueOf(Boolean.parseBoolean(String.valueOf(json)));
                 case "int":
-                    return 
Integer.valueOf(Integer.parseInt(String.valueOf(json).trim()));
+                    return 
Integer.valueOf(Integer.parseInt(String.valueOf(json).strip()));
                 case "long":
-                    return 
Long.valueOf(Long.parseLong(String.valueOf(json).trim()));
+                    return 
Long.valueOf(Long.parseLong(String.valueOf(json).strip()));
                 case "short":
-                    return 
Short.valueOf(Short.parseShort(String.valueOf(json).trim()));
+                    return 
Short.valueOf(Short.parseShort(String.valueOf(json).strip()));
                 case "byte":
-                    return 
Byte.valueOf(Byte.parseByte(String.valueOf(json).trim()));
+                    return 
Byte.valueOf(Byte.parseByte(String.valueOf(json).strip()));
                 case "float":
-                    return 
Float.valueOf(Float.parseFloat(String.valueOf(json).trim()));
+                    return 
Float.valueOf(Float.parseFloat(String.valueOf(json).strip()));
                 case "double":
-                    return 
Double.valueOf(Double.parseDouble(String.valueOf(json).trim()));
+                    return 
Double.valueOf(Double.parseDouble(String.valueOf(json).strip()));
                 case "java.lang.String":
                     return String.valueOf(json);
                 case "[Ljava.lang.String;":
@@ -4181,7 +4181,7 @@ public class ConfigApiServlet extends HttpServlet 
implements ContainerServlet {
 
     private static void validateParamValue(String name, String value, String 
type) throws ConfigException {
         try {
-            String trimmed = value.trim();
+            String trimmed = value.strip();
             switch (type) {
                 case "int" -> Integer.parseInt(trimmed);
                 case "long" -> Long.parseLong(trimmed);
@@ -4468,7 +4468,7 @@ public class ConfigApiServlet extends HttpServlet 
implements ContainerServlet {
             type = SSLHostConfigCertificate.Type.UNDEFINED;
         } else {
             try {
-                type = 
SSLHostConfigCertificate.Type.valueOf(typeName.trim().toUpperCase(Locale.ENGLISH));
+                type = 
SSLHostConfigCertificate.Type.valueOf(typeName.strip().toUpperCase(Locale.ENGLISH));
             } catch (IllegalArgumentException e) {
                 throw new ConfigException(HttpServletResponse.SC_BAD_REQUEST, 
"INVALID_NAME",
                         Strings.sm().getString("manager2.configInvalidName", 
typeName));
@@ -5445,7 +5445,7 @@ public class ConfigApiServlet extends HttpServlet 
implements ContainerServlet {
         }
         if (value instanceof String s && !s.isEmpty()) {
             try {
-                return Integer.parseInt(s.trim());
+                return Integer.parseInt(s.strip());
             } catch (NumberFormatException e) {
                 return defaultValue;
             }
@@ -5458,14 +5458,14 @@ public class ConfigApiServlet extends HttpServlet 
implements ContainerServlet {
         List<String> result = new ArrayList<>();
         if (value instanceof List<?> list) {
             for (Object item : list) {
-                String s = String.valueOf(item).trim();
+                String s = String.valueOf(item).strip();
                 if (!s.isEmpty()) {
                     result.add(s);
                 }
             }
         } else if (value instanceof String s && !s.isEmpty()) {
             for (String part : s.split(",")) {
-                String trimmed = part.trim();
+                String trimmed = part.strip();
                 if (!trimmed.isEmpty()) {
                     result.add(trimmed);
                 }
diff --git 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/HostsApiServlet.java
 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/HostsApiServlet.java
index 6653e04279..7967332eb3 100644
--- 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/HostsApiServlet.java
+++ 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/HostsApiServlet.java
@@ -219,7 +219,7 @@ public class HostsApiServlet extends HostManagerServlet {
         try (PrintWriter writer = new PrintWriter(stringWriter)) {
             operation.run(writer);
         }
-        return stringWriter.toString().trim();
+        return stringWriter.toString().strip();
     }
 
 
diff --git 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusApiServlet.java
 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusApiServlet.java
index c6370f6f18..440ef650c6 100644
--- 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusApiServlet.java
+++ 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusApiServlet.java
@@ -307,7 +307,7 @@ public class StatusApiServlet extends HttpServlet 
implements ContainerServlet, N
         String value = getServletConfig().getInitParameter(name);
         if (value != null && !value.isEmpty()) {
             try {
-                long parsed = Long.parseLong(value.trim());
+                long parsed = Long.parseLong(value.strip());
                 if (parsed >= minimum) {
                     return parsed;
                 }
diff --git 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusSnapshot.java 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusSnapshot.java
index 2ed9153aa1..239afaf1ca 100644
--- 
a/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusSnapshot.java
+++ 
b/modules/manager2/src/main/java/org/apache/tomcat/manager2/StatusSnapshot.java
@@ -290,7 +290,7 @@ public final class StatusSnapshot {
             for (String line : Files.readAllLines(MEMINFO_PATH, 
StandardCharsets.UTF_8)) {
                 if (line.startsWith(MEM_AVAILABLE_PREFIX)) {
                     // The kernel writes the value in kB: "MemAvailable:   <n> 
kB".
-                    return 
Long.valueOf(Long.parseLong(line.substring(MEM_AVAILABLE_PREFIX.length()).trim()
+                    return 
Long.valueOf(Long.parseLong(line.substring(MEM_AVAILABLE_PREFIX.length()).strip()
                             .split("\\s+")[0]) * 1024L);
                 }
             }
diff --git 
a/modules/owb/src/main/java/org/apache/webbeans/web/tomcat/TomcatSecurityService.java
 
b/modules/owb/src/main/java/org/apache/webbeans/web/tomcat/TomcatSecurityService.java
index 8f290d4cfd..22fe5662c2 100644
--- 
a/modules/owb/src/main/java/org/apache/webbeans/web/tomcat/TomcatSecurityService.java
+++ 
b/modules/owb/src/main/java/org/apache/webbeans/web/tomcat/TomcatSecurityService.java
@@ -50,7 +50,7 @@ public class TomcatSecurityService extends 
SimpleSecurityService {
                         .filter(it -> !it.isEmpty())
                         .map(it -> {
                             try { // if MP JWT-Auth is available
-                                return loader.loadClass(it.trim());
+                                return loader.loadClass(it.strip());
                             } catch (final NoClassDefFoundError | 
ClassNotFoundException e) {
                                 return null;
                             }
diff --git a/test/org/apache/catalina/core/TestApplicationDispatcher.java 
b/test/org/apache/catalina/core/TestApplicationDispatcher.java
index 1933e4a01f..5d740e9cb7 100644
--- a/test/org/apache/catalina/core/TestApplicationDispatcher.java
+++ b/test/org/apache/catalina/core/TestApplicationDispatcher.java
@@ -76,7 +76,7 @@ public class TestApplicationDispatcher extends TomcatBaseTest 
{
                 response, null);
 
         Assert.assertEquals(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, rc);
-        Assert.assertEquals("OK", response.toString().trim());
+        Assert.assertEquals("OK", response.toString().strip());
     }
 
 
@@ -100,7 +100,7 @@ public class TestApplicationDispatcher extends 
TomcatBaseTest {
                 response, null);
 
         Assert.assertEquals(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, rc);
-        Assert.assertEquals("OK", response.toString().trim());
+        Assert.assertEquals("OK", response.toString().strip());
     }
 
 
diff --git a/test/org/apache/catalina/tribes/demos/CoordinationDemo.java 
b/test/org/apache/catalina/tribes/demos/CoordinationDemo.java
index ad958a061f..02d23d5a14 100644
--- a/test/org/apache/catalina/tribes/demos/CoordinationDemo.java
+++ b/test/org/apache/catalina/tribes/demos/CoordinationDemo.java
@@ -288,13 +288,13 @@ public class CoordinationDemo {
     public static String fill(String value, int length, String ch, boolean 
left) {
         StringBuilder buf = new StringBuilder();
         if (!left) {
-            buf.append(value.trim());
+            buf.append(value.strip());
         }
-        for (int i = value.trim().length(); i < length; i++) {
+        for (int i = value.strip().length(); i < length; i++) {
             buf.append(ch);
         }
         if (left) {
-            buf.append(value.trim());
+            buf.append(value.strip());
         }
         return buf.toString();
     }
diff --git a/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java 
b/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java
index d110410553..ff3e1ef9d3 100644
--- a/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java
+++ b/test/org/apache/catalina/valves/TestExtendedAccessLogValve.java
@@ -166,7 +166,7 @@ public class TestExtendedAccessLogValve extends 
TomcatBaseTest {
         int result = 0;
         String[] lines = content.split("\\r?\\n");
         for (String line : lines) {
-            if (!line.startsWith("#") && !line.trim().isEmpty()) {
+            if (!line.startsWith("#") && !line.strip().isEmpty()) {
                 result++;
             }
         }
@@ -180,7 +180,7 @@ public class TestExtendedAccessLogValve extends 
TomcatBaseTest {
         List<String> dataLines = new ArrayList<>();
         for (String line : lines) {
             if (!line.startsWith("#")) { // Skip directives
-                dataLines.add(line.trim());
+                dataLines.add(line.strip());
             } else {
                 if (line.startsWith("#Fields: ")) {
                     Assert.assertEquals(line.substring("#Fields: ".length()), 
logPattern);
diff --git a/test/org/apache/el/TesterFunctions.java 
b/test/org/apache/el/TesterFunctions.java
index a00a7aa676..c41fcc8aba 100644
--- a/test/org/apache/el/TesterFunctions.java
+++ b/test/org/apache/el/TesterFunctions.java
@@ -22,7 +22,7 @@ import jakarta.el.FunctionMapper;
 
 public class TesterFunctions {
     public static String trim(String input) {
-        return input.trim();
+        return input.strip();
     }
 
     public static String concat(String... inputs) {
diff --git a/test/org/apache/jasper/compiler/TestEncodingDetector.java 
b/test/org/apache/jasper/compiler/TestEncodingDetector.java
index 6d4f07eef5..0bdd28fac7 100644
--- a/test/org/apache/jasper/compiler/TestEncodingDetector.java
+++ b/test/org/apache/jasper/compiler/TestEncodingDetector.java
@@ -83,7 +83,7 @@ public class TestEncodingDetector extends TomcatBaseTest {
 
         if (expectedResponseCode == 200) {
             // trim() to remove whitespace like new lines
-            String bodyText = responseBody.toString().trim();
+            String bodyText = responseBody.toString().strip();
             if (responseBodyOK.booleanValue()) {
                 Assert.assertEquals("OK", bodyText);
             } else {
diff --git a/test/org/apache/jasper/compiler/TestJspUtil.java 
b/test/org/apache/jasper/compiler/TestJspUtil.java
index 9516f0339e..f4269bf978 100644
--- a/test/org/apache/jasper/compiler/TestJspUtil.java
+++ b/test/org/apache/jasper/compiler/TestJspUtil.java
@@ -37,7 +37,7 @@ public class TestJspUtil extends TomcatBaseTest {
         String[] lines = body.split("\n");
 
         for (String line : lines) {
-            line = line.trim();
+            line = line.strip();
             if (line.startsWith("<p>")) {
                 line = line.substring(3, line.length() - 4);
                 String[] parts = line.split(":");
diff --git a/test/org/apache/juli/TestPerWebappJuliIntegration.java 
b/test/org/apache/juli/TestPerWebappJuliIntegration.java
index f8e281f604..bff91a07df 100644
--- a/test/org/apache/juli/TestPerWebappJuliIntegration.java
+++ b/test/org/apache/juli/TestPerWebappJuliIntegration.java
@@ -60,8 +60,8 @@ public class TestPerWebappJuliIntegration extends 
TomcatBaseTest {
         tomcat.start();
         ByteChunk res = getUrl("http://localhost:"; + getPort() + "/juli" + 
APP_ID_A + "/log_level");
         ByteChunk res2 = getUrl("http://localhost:"; + getPort() + "/juli" + 
APP_ID_B + "/log_level");
-        Assert.assertEquals(Level.FINE.toString(), res.toString().trim());
-        Assert.assertEquals(Level.INFO.toString(), res2.toString().trim());
+        Assert.assertEquals(Level.FINE.toString(), res.toString().strip());
+        Assert.assertEquals(Level.INFO.toString(), res2.toString().strip());
         tomcat.stop();
     }
     @Test
diff --git a/test/org/apache/naming/TestEnvEntry.java 
b/test/org/apache/naming/TestEnvEntry.java
index 045b1fd5b8..d4058e9524 100644
--- a/test/org/apache/naming/TestEnvEntry.java
+++ b/test/org/apache/naming/TestEnvEntry.java
@@ -106,7 +106,7 @@ public class TestEnvEntry extends TomcatBaseTest {
         Assert.assertEquals(HttpServletResponse.SC_OK, rc);
 
         // JSP has leading and trailing white-space
-        String result = out.toString().trim();
+        String result = out.toString().strip();
         Assert.assertEquals(expected, result);
     }
 
@@ -130,7 +130,7 @@ public class TestEnvEntry extends TomcatBaseTest {
         Assert.assertEquals(HttpServletResponse.SC_OK, rc);
 
         // JSP has leading and trailing white-space
-        String result = out.toString().trim();
+        String result = out.toString().strip();
         Assert.assertEquals(expected, result);
     }
 }
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 d8b54355a4..662d33edae 100644
--- a/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
+++ b/test/org/apache/tomcat/util/net/openssl/ciphers/TesterOpenSSL.java
@@ -250,7 +250,7 @@ public class TesterOpenSSL {
 
 
     public static Set<String> getOpenSSLCiphersAsSet(String specification) 
throws Exception {
-        String[] ciphers = getOpenSSLCiphersAsExpression(specification, 
true).trim().split(":");
+        String[] ciphers = getOpenSSLCiphersAsExpression(specification, 
true).strip().split(":");
         Set<String> result = new HashSet<>(Arrays.asList(ciphers));
         return result;
     }
@@ -390,7 +390,7 @@ public class TesterOpenSSL {
             System.err.println(errorText);
         }
 
-        return stdout.getText().trim();
+        return stdout.getText().strip();
     }
 
     private static class InputStreamToText implements Runnable {
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9552db9dd0..db43e5e2bd 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -117,6 +117,10 @@
       <update>
         The minimum Java version has been updated to Java 21. (markt)
       </update>
+      <scode>
+        Switch to using <code>String.strip()</code> rather than
+        <code>String.trim()</code> where appropriate. (markt)
+      </scode>
     </changelog>
   </subsection>
   <subsection name="Catalina">


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to