From 5e0288b86bc257fa00b60bb0313fc2859ead074d Mon Sep 17 00:00:00 2001 From: Josh Soref Date: Wed, 20 Feb 2019 22:22:19 -0500 Subject: [PATCH] StringBuilder --- core/src/main/java/hudson/FilePath.java | 4 ++-- .../security/TokenBasedRememberMeServices2.java | 6 ++++-- .../src/main/java/hudson/util/FormFieldValidator.java | 11 ++++++----- core/src/main/java/hudson/util/FormValidation.java | 10 ++++++---- .../java/jenkins/security/s2m/AdminWhitelistRule.java | 10 +++++----- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index 3401c4eeaa..cbb975ca2a 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -2730,12 +2730,12 @@ public final class FilePath implements SerializableOnlyOverRemoting { // // this is not a very efficient/clever way to do it, but it's relatively simple - String prefix=""; + StringBuilder prefix = new StringBuilder(); while(true) { int idx = findSeparator(f); if(idx==-1) break; - prefix+=f.substring(0,idx)+'/'; + prefix.append(f.substring(0, idx)).append('/'); f=f.substring(idx+1); if(hasMatch(dir,prefix+fileMask,caseSensitive)) return Messages.FilePath_validateAntFileMask_doesntMatchAndSuggest(fileMask, prefix+fileMask); diff --git a/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java b/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java index 71ba57c692..b1dd7ce720 100644 --- a/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java +++ b/core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java @@ -276,9 +276,11 @@ public class TokenBasedRememberMeServices2 extends TokenBasedRememberMeServices * @return the decoded base64 of the cookie or {@code null} if the value was not correctly encoded */ private @CheckForNull String decodeCookieBase64(@Nonnull String base64EncodedValue){ - for (int j = 0; j < base64EncodedValue.length() % 4; j++) { - base64EncodedValue = base64EncodedValue + "="; + StringBuilder base64EncodedValueBuilder = new StringBuilder(base64EncodedValue); + for (int j = 0; j < base64EncodedValueBuilder.length() % 4; j++) { + base64EncodedValueBuilder.append("="); } + base64EncodedValue = base64EncodedValueBuilder.toString(); try { // any charset should be fine but better safe than sorry diff --git a/core/src/main/java/hudson/util/FormFieldValidator.java b/core/src/main/java/hudson/util/FormFieldValidator.java index 5f0bb33f67..7cb4380d92 100644 --- a/core/src/main/java/hudson/util/FormFieldValidator.java +++ b/core/src/main/java/hudson/util/FormFieldValidator.java @@ -540,18 +540,19 @@ public abstract class FormFieldValidator { } else { // look in PATH String path = EnvVars.masterEnvVars.get("PATH"); - String tokenizedPath = ""; + String tokenizedPath; String delimiter = null; if(path!=null) { + StringBuilder tokenizedPathBuilder = new StringBuilder(); for (String _dir : Util.tokenize(path.replace("\\", "\\\\"),File.pathSeparator)) { if (delimiter == null) { delimiter = ", "; } else { - tokenizedPath += delimiter; + tokenizedPathBuilder.append(delimiter); } - tokenizedPath += _dir.replace('\\', '/'); + tokenizedPathBuilder.append(_dir.replace('\\', '/')); File dir = new File(_dir); @@ -567,8 +568,8 @@ public abstract class FormFieldValidator { return; } } - - tokenizedPath += "."; + tokenizedPathBuilder.append('.'); + tokenizedPath = tokenizedPathBuilder.toString(); } else { tokenizedPath = "unavailable."; diff --git a/core/src/main/java/hudson/util/FormValidation.java b/core/src/main/java/hudson/util/FormValidation.java index 25a351cc1c..ccb6d32b61 100644 --- a/core/src/main/java/hudson/util/FormValidation.java +++ b/core/src/main/java/hudson/util/FormValidation.java @@ -351,18 +351,19 @@ public abstract class FormValidation extends IOException implements HttpResponse // look in PATH String path = EnvVars.masterEnvVars.get("PATH"); - String tokenizedPath = ""; + String tokenizedPath; String delimiter = null; if(path!=null) { + StringBuilder tokenizedPathBuilder = new StringBuilder(); for (String _dir : Util.tokenize(path.replace("\\", "\\\\"),File.pathSeparator)) { if (delimiter == null) { delimiter = ", "; } else { - tokenizedPath += delimiter; + tokenizedPathBuilder.append(delimiter); } - tokenizedPath += _dir.replace('\\', '/'); + tokenizedPathBuilder.append(_dir.replace('\\', '/')); File dir = new File(_dir); @@ -372,8 +373,9 @@ public abstract class FormValidation extends IOException implements HttpResponse File fexe = new File(dir,exe+".exe"); if(fexe.exists()) return exeValidator.validate(fexe); } + tokenizedPathBuilder.append('.'); - tokenizedPath += "."; + tokenizedPath = tokenizedPathBuilder.toString(); } else { tokenizedPath = "unavailable."; } diff --git a/core/src/main/java/jenkins/security/s2m/AdminWhitelistRule.java b/core/src/main/java/jenkins/security/s2m/AdminWhitelistRule.java index 0a3eb62ffd..e16f3aa5fa 100644 --- a/core/src/main/java/jenkins/security/s2m/AdminWhitelistRule.java +++ b/core/src/main/java/jenkins/security/s2m/AdminWhitelistRule.java @@ -160,19 +160,19 @@ public class AdminWhitelistRule implements StaplerProxy { @RequirePOST public HttpResponse doSubmit(StaplerRequest req) throws IOException { - String whitelist = Util.fixNull(req.getParameter("whitelist")); - if (!whitelist.endsWith("\n")) - whitelist+="\n"; + StringBuilder whitelist = new StringBuilder(Util.fixNull(req.getParameter("whitelist"))); + if (whitelist.charAt(whitelist.length() - 1) != '\n') + whitelist.append("\n"); Enumeration e = req.getParameterNames(); while (e.hasMoreElements()) { String name = (String) e.nextElement(); if (name.startsWith("class:")) { - whitelist += name.substring(6)+"\n"; + whitelist.append(name.substring(6)).append("\n"); } } - whitelisted.set(whitelist); + whitelisted.set(whitelist.toString()); String newRules = Util.fixNull(req.getParameter("filePathRules")); filePathRules.parseTest(newRules); // test first before writing a potentially broken rules