From c48728d0f49840d7eb7e1b4e4e2edc33753bd914 Mon Sep 17 00:00:00 2001 From: Benoit Lacelle Date: Sat, 8 Apr 2023 17:04:47 +0200 Subject: [PATCH] Use `String#isEmpty` where possible (#7690) --- cli/src/main/java/hudson/util/QuotedStringTokenizer.java | 4 ++-- core/src/main/java/hudson/EnvVars.java | 2 +- core/src/main/java/hudson/Functions.java | 4 ++-- core/src/main/java/hudson/PluginManager.java | 2 +- core/src/main/java/hudson/ProxyConfiguration.java | 2 +- core/src/main/java/hudson/Util.java | 4 ++-- core/src/main/java/hudson/init/TaskMethodFinder.java | 2 +- core/src/main/java/hudson/logging/LogRecorder.java | 8 ++++---- core/src/main/java/hudson/model/AbstractBuild.java | 2 +- core/src/main/java/hudson/model/AbstractItem.java | 4 ++-- core/src/main/java/hudson/model/AbstractProject.java | 2 +- .../main/java/hudson/model/AutoCompletionCandidates.java | 2 +- core/src/main/java/hudson/model/Descriptor.java | 4 ++-- .../main/java/hudson/model/DirectoryBrowserSupport.java | 6 +++--- core/src/main/java/hudson/model/Items.java | 6 +++--- core/src/main/java/hudson/model/Slave.java | 2 +- core/src/main/java/hudson/model/View.java | 2 +- core/src/main/java/hudson/scheduler/CronTabList.java | 2 +- core/src/main/java/hudson/scm/SCM.java | 2 +- .../java/hudson/security/HudsonPrivateSecurityRealm.java | 4 ++-- core/src/main/java/hudson/security/csrf/CrumbFilter.java | 2 +- core/src/main/java/hudson/slaves/AbstractCloudImpl.java | 2 +- core/src/main/java/hudson/tasks/ArtifactArchiver.java | 2 +- core/src/main/java/hudson/tasks/Maven.java | 2 +- core/src/main/java/hudson/util/ArgumentListBuilder.java | 4 ++-- core/src/main/java/hudson/util/FormFieldValidator.java | 2 +- core/src/main/java/hudson/util/FormValidation.java | 6 +++--- core/src/main/java/hudson/util/LineEndingConversion.java | 2 +- core/src/main/java/hudson/util/QueryParameterMap.java | 2 +- core/src/main/java/hudson/util/SecretRewriter.java | 2 +- core/src/main/java/hudson/util/Service.java | 4 ++-- core/src/main/java/hudson/util/jna/RegistryKey.java | 4 ++-- core/src/main/java/jenkins/model/Jenkins.java | 2 +- .../commons/validator/routines/InetAddressValidator.java | 4 ++-- .../apache/commons/validator/routines/RegexValidator.java | 2 +- .../java/jenkins/telemetry/impl/StaplerDispatches.java | 2 +- .../main/java/jenkins/telemetry/impl/UserLanguages.java | 2 +- core/src/main/java/jenkins/util/TreeStringBuilder.java | 2 +- core/src/main/java/jenkins/util/VirtualFile.java | 2 +- core/src/main/java/jenkins/widgets/HistoryPageFilter.java | 2 +- 40 files changed, 59 insertions(+), 59 deletions(-) diff --git a/cli/src/main/java/hudson/util/QuotedStringTokenizer.java b/cli/src/main/java/hudson/util/QuotedStringTokenizer.java index 6f77b758bc..98de36ea27 100644 --- a/cli/src/main/java/hudson/util/QuotedStringTokenizer.java +++ b/cli/src/main/java/hudson/util/QuotedStringTokenizer.java @@ -341,7 +341,7 @@ public class QuotedStringTokenizer { if (s == null) return null; - if (s.length() == 0) + if (s.isEmpty()) return "\"\""; @@ -371,7 +371,7 @@ public class QuotedStringTokenizer { if (s == null) return null; - if (s.length() == 0) + if (s.isEmpty()) return "\"\""; StringBuffer b = new StringBuffer(s.length() + 8); diff --git a/core/src/main/java/hudson/EnvVars.java b/core/src/main/java/hudson/EnvVars.java index cce69ede9e..286151e46b 100644 --- a/core/src/main/java/hudson/EnvVars.java +++ b/core/src/main/java/hudson/EnvVars.java @@ -144,7 +144,7 @@ public class EnvVars extends TreeMap { * Handles {@code PATH+XYZ} notation. */ public void override(String key, String value) { - if (value == null || value.length() == 0) { + if (value == null || value.isEmpty()) { remove(key); return; } diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 9352944e3d..7f34114067 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -1655,7 +1655,7 @@ public class Functions { * Converts "abc" to "Abc". */ public static String capitalize(String s) { - if (s == null || s.length() == 0) return s; + if (s == null || s.isEmpty()) return s; return Character.toUpperCase(s.charAt(0)) + s.substring(1); } @@ -1867,7 +1867,7 @@ public class Functions { public static String joinPath(String... components) { StringBuilder buf = new StringBuilder(); for (String s : components) { - if (s.length() == 0) continue; + if (s.isEmpty()) continue; if (buf.length() > 0) { if (buf.charAt(buf.length() - 1) != '/') diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 37cb0c914e..0ea2594fad 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -662,7 +662,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas for (String pluginPath : plugins) { String fileName = pluginPath.substring(pluginPath.lastIndexOf('/') + 1); - if (fileName.length() == 0) { + if (fileName.isEmpty()) { // see http://www.nabble.com/404-Not-Found-error-when-clicking-on-help-td24508544.html // I suspect some containers are returning directory names. continue; diff --git a/core/src/main/java/hudson/ProxyConfiguration.java b/core/src/main/java/hudson/ProxyConfiguration.java index bb590ada87..a165fa6e31 100644 --- a/core/src/main/java/hudson/ProxyConfiguration.java +++ b/core/src/main/java/hudson/ProxyConfiguration.java @@ -222,7 +222,7 @@ public final class ProxyConfiguration extends AbstractDescribableImpl r = new ArrayList<>(); for (String s : noProxyHost.split("[ \t\n,|]+")) { - if (s.length() == 0) continue; + if (s.isEmpty()) continue; r.add(Pattern.compile(s.replace(".", "\\.").replace("*", ".*"))); } return r; diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index 53c75693e8..07254e2b77 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -1110,7 +1110,7 @@ public class Util { */ @CheckForNull public static String fixEmpty(@CheckForNull String s) { - if (s == null || s.length() == 0) return null; + if (s == null || s.isEmpty()) return null; return s; } @@ -1487,7 +1487,7 @@ public class Util { */ @CheckForNull public static Number tryParseNumber(@CheckForNull String numberStr, @CheckForNull Number defaultNumber) { - if (numberStr == null || numberStr.length() == 0) { + if (numberStr == null || numberStr.isEmpty()) { return defaultNumber; } try { diff --git a/core/src/main/java/hudson/init/TaskMethodFinder.java b/core/src/main/java/hudson/init/TaskMethodFinder.java index b15869ba88..352e2ddff5 100644 --- a/core/src/main/java/hudson/init/TaskMethodFinder.java +++ b/core/src/main/java/hudson/init/TaskMethodFinder.java @@ -82,7 +82,7 @@ abstract class TaskMethodFinder extends TaskBuilder { protected String getDisplayNameOf(Method e, T i) { Class c = e.getDeclaringClass(); String key = displayNameOf(i); - if (key.length() == 0) return c.getSimpleName() + "." + e.getName(); + if (key.isEmpty()) return c.getSimpleName() + "." + e.getName(); try { ResourceBundleHolder rb = ResourceBundleHolder.get( c.getClassLoader().loadClass(c.getPackage().getName() + ".Messages")); diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index 84ae1e1f1e..ae00f8510f 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -312,27 +312,27 @@ public class LogRecorder extends AbstractModelObject implements Saveable { public boolean includes(LogRecord r) { if (r.getLevel().intValue() < level) return false; // below the threshold - if (name.length() == 0) { + if (name.isEmpty()) { return true; // like root logger, includes everything } String logName = r.getLoggerName(); if (logName == null || !logName.startsWith(name)) return false; // not within this logger String rest = logName.substring(name.length()); - return rest.startsWith(".") || rest.length() == 0; + return rest.startsWith(".") || rest.isEmpty(); } @SuppressFBWarnings(value = "NP_BOOLEAN_RETURN_NULL", justification = "converting this to YesNoMaybe would break backward compatibility") public Boolean matches(LogRecord r) { boolean levelSufficient = r.getLevel().intValue() >= level; - if (name.length() == 0) { + if (name.isEmpty()) { return levelSufficient; // include if level matches } String logName = r.getLoggerName(); if (logName == null || !logName.startsWith(name)) return null; // not in the domain of this logger String rest = logName.substring(name.length()); - if (rest.startsWith(".") || rest.length() == 0) { + if (rest.startsWith(".") || rest.isEmpty()) { return levelSufficient; // include if level matches } return null; diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index 3694a1e5c9..bcd29082eb 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -210,7 +210,7 @@ public abstract class AbstractBuild

, R extends A * null, for example if the agent that this build run no longer exists. */ public @CheckForNull Node getBuiltOn() { - if (builtOn == null || builtOn.equals("")) + if (builtOn == null || builtOn.isEmpty()) return Jenkins.get(); else return Jenkins.get().getNode(builtOn); diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index a605668bc6..0984690980 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -479,7 +479,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet @Exported public final String getFullName() { String n = getParent().getFullName(); - if (n.length() == 0) return getName(); + if (n.isEmpty()) return getName(); else return n + '/' + getName(); } @@ -487,7 +487,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet @Exported public final String getFullDisplayName() { String n = getParent().getFullDisplayName(); - if (n.length() == 0) return getDisplayName(); + if (n.isEmpty()) return getDisplayName(); else return n + " ยป " + getDisplayName(); } diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index fa1a7777df..809c215a61 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -683,7 +683,7 @@ public abstract class AbstractProject

, R extends */ public FormValidation doCheckRetryCount(@QueryParameter String value)throws IOException, ServletException { // retry count is optional so this is ok - if (value == null || value.trim().equals("")) + if (value == null || value.trim().isEmpty()) return FormValidation.ok(); if (!value.matches("[0-9]*")) { return FormValidation.error("Invalid retry count"); diff --git a/core/src/main/java/hudson/model/AutoCompletionCandidates.java b/core/src/main/java/hudson/model/AutoCompletionCandidates.java index dbc3f6ea1c..b402f77266 100644 --- a/core/src/main/java/hudson/model/AutoCompletionCandidates.java +++ b/core/src/main/java/hudson/model/AutoCompletionCandidates.java @@ -149,7 +149,7 @@ public class AutoCompletionCandidates implements HttpResponse { } private String contextualNameOf(Item i) { - if (prefix.endsWith("/") || prefix.length() == 0) + if (prefix.endsWith("/") || prefix.isEmpty()) return prefix + i.getName(); else return prefix + '/' + i.getName(); diff --git a/core/src/main/java/hudson/model/Descriptor.java b/core/src/main/java/hudson/model/Descriptor.java index f25ccd4205..213642a5aa 100644 --- a/core/src/main/java/hudson/model/Descriptor.java +++ b/core/src/main/java/hudson/model/Descriptor.java @@ -440,8 +440,8 @@ public abstract class Descriptor> implements Saveable, QueryParameter qp = p.annotation(QueryParameter.class); if (qp != null) { String name = qp.value(); - if (name.length() == 0) name = p.name(); - if (name == null || name.length() == 0) + if (name.isEmpty()) name = p.name(); + if (name == null || name.isEmpty()) continue; // unknown parameter name. we'll report the error when the form is submitted. RelativePath rp = p.annotation(RelativePath.class); diff --git a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java index 9126698376..b88e478740 100644 --- a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java +++ b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java @@ -306,7 +306,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { return; } - if (rest.length() == 0) { + if (rest.isEmpty()) { // if the target page to be displayed is a directory and the path doesn't end with '/', redirect StringBuffer reqUrl = req.getRequestURL(); if (reqUrl.charAt(reqUrl.length() - 1) != '/') { @@ -408,7 +408,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { if (!ResourceDomainConfiguration.isResourceRequest(req)) { // if we're serving this from the main domain, set CSP headers String csp = SystemProperties.getString(CSP_PROPERTY_NAME, DEFAULT_CSP_VALUE); - if (!csp.trim().equals("")) { + if (!csp.trim().isEmpty()) { // allow users to prevent sending this header by setting empty system property for (String header : new String[]{"Content-Security-Policy", "X-WebKit-CSP", "X-Content-Security-Policy"}) { rsp.setHeader(header, csp); @@ -500,7 +500,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { private String getPath(StaplerRequest req) { String path = req.getRestOfPath(); - if (path.length() == 0) + if (path.isEmpty()) path = "/"; return path; } diff --git a/core/src/main/java/hudson/model/Items.java b/core/src/main/java/hudson/model/Items.java index 7bda39bc80..ee460686b9 100644 --- a/core/src/main/java/hudson/model/Items.java +++ b/core/src/main/java/hudson/model/Items.java @@ -255,17 +255,17 @@ public class Items { Stack name = new Stack<>(); for (int i = 0; i < c.length; i++) { - if (i == 0 && c[i].equals("")) continue; + if (i == 0 && c[i].isEmpty()) continue; name.push(c[i]); } for (int i = 0; i < p.length; i++) { - if (i == 0 && p[i].equals("")) { + if (i == 0 && p[i].isEmpty()) { // Absolute path starting with a "/" name.clear(); continue; } if (p[i].equals("..")) { - if (name.size() == 0) { + if (name.isEmpty()) { throw new IllegalArgumentException(String.format( "Illegal relative path '%s' within context '%s'", path, context.getFullName() )); diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index cf6e6b4378..d6727ad260 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -201,7 +201,7 @@ public abstract class Slave extends Node implements Serializable { this.nodeProperties.replaceBy(nodeProperties); - if (name.equals("")) + if (name.isEmpty()) throw new FormException(Messages.Slave_InvalidConfig_NoName(), null); if (this.numExecutors <= 0) diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index c63d0a7be7..91c34d8c44 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -1357,7 +1357,7 @@ public abstract class View extends AbstractModelObject implements AccessControll if (owner.getView(name) != null) throw new Failure(Messages.Hudson_ViewAlreadyExists(name)); - if (mode == null || mode.length() == 0) { + if (mode == null || mode.isEmpty()) { if (isXmlSubmission) { View v = createViewFromXML(name, req.getInputStream()); owner.getACL().checkCreatePermission(owner, v.getDescriptor()); diff --git a/core/src/main/java/hudson/scheduler/CronTabList.java b/core/src/main/java/hudson/scheduler/CronTabList.java index f9be65fe12..1ee75faa08 100644 --- a/core/src/main/java/hudson/scheduler/CronTabList.java +++ b/core/src/main/java/hudson/scheduler/CronTabList.java @@ -123,7 +123,7 @@ public final class CronTabList { continue; } - if (line.length() == 0 || line.startsWith("#")) + if (line.isEmpty() || line.startsWith("#")) continue; // ignorable line try { r.add(new CronTab(line, lineNumber, hash, timezone)); diff --git a/core/src/main/java/hudson/scm/SCM.java b/core/src/main/java/hudson/scm/SCM.java index c00bcea162..4aafea4989 100644 --- a/core/src/main/java/hudson/scm/SCM.java +++ b/core/src/main/java/hudson/scm/SCM.java @@ -749,7 +749,7 @@ public abstract class SCM implements Describable, ExtensionPoint { protected final String nullify(String s) { if (s == null) return null; - if (s.trim().length() == 0) return null; + if (s.trim().isEmpty()) return null; return s; } diff --git a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java index d25b01c020..fb93f11616 100644 --- a/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java +++ b/core/src/main/java/hudson/security/HudsonPrivateSecurityRealm.java @@ -420,7 +420,7 @@ public class HudsonPrivateSecurityRealm extends AbstractPasswordBasedSecurityRea si.errors.put("captcha", Messages.HudsonPrivateSecurityRealm_CreateAccount_TextNotMatchWordInImage()); } - if (si.username == null || si.username.length() == 0) { + if (si.username == null || si.username.isEmpty()) { si.errors.put("username", Messages.HudsonPrivateSecurityRealm_CreateAccount_UserNameRequired()); } else if (!containsOnlyAcceptableCharacters(si.username)) { if (ID_REGEX == null) { @@ -445,7 +445,7 @@ public class HudsonPrivateSecurityRealm extends AbstractPasswordBasedSecurityRea si.errors.put("password1", Messages.HudsonPrivateSecurityRealm_CreateAccount_PasswordRequired()); } - if (si.fullname == null || si.fullname.length() == 0) { + if (si.fullname == null || si.fullname.isEmpty()) { si.fullname = si.username; } diff --git a/core/src/main/java/hudson/security/csrf/CrumbFilter.java b/core/src/main/java/hudson/security/csrf/CrumbFilter.java index 971411a163..03e17a0fd8 100644 --- a/core/src/main/java/hudson/security/csrf/CrumbFilter.java +++ b/core/src/main/java/hudson/security/csrf/CrumbFilter.java @@ -79,7 +79,7 @@ public class CrumbFilter implements Filter { private static String canonicalPath(String path) { List r = new ArrayList<>(Arrays.asList(path.split("/+"))); for (int i = 0; i < r.size(); ) { - if (r.get(i).length() == 0 || r.get(i).equals(".")) { + if (r.get(i).isEmpty() || r.get(i).equals(".")) { // empty token occurs for example, "".split("/+") is [""] r.remove(i); } else diff --git a/core/src/main/java/hudson/slaves/AbstractCloudImpl.java b/core/src/main/java/hudson/slaves/AbstractCloudImpl.java index 4cb1df8ab8..e8ca46d1c8 100644 --- a/core/src/main/java/hudson/slaves/AbstractCloudImpl.java +++ b/core/src/main/java/hudson/slaves/AbstractCloudImpl.java @@ -25,7 +25,7 @@ public abstract class AbstractCloudImpl extends Cloud { } protected void setInstanceCapStr(String value) { - if (value == null || value.equals("")) + if (value == null || value.isEmpty()) this.instanceCap = Integer.MAX_VALUE; else this.instanceCap = Integer.parseInt(value); diff --git a/core/src/main/java/hudson/tasks/ArtifactArchiver.java b/core/src/main/java/hudson/tasks/ArtifactArchiver.java index ffeefda8af..bd4d432fac 100644 --- a/core/src/main/java/hudson/tasks/ArtifactArchiver.java +++ b/core/src/main/java/hudson/tasks/ArtifactArchiver.java @@ -236,7 +236,7 @@ public class ArtifactArchiver extends Recorder implements SimpleBuildStep { @Override public void perform(Run build, FilePath ws, EnvVars environment, Launcher launcher, TaskListener listener) throws IOException, InterruptedException { - if (artifacts.length() == 0) { + if (artifacts.isEmpty()) { throw new AbortException(Messages.ArtifactArchiver_NoIncludes()); } diff --git a/core/src/main/java/hudson/tasks/Maven.java b/core/src/main/java/hudson/tasks/Maven.java index 404c21410d..db05022bc9 100644 --- a/core/src/main/java/hudson/tasks/Maven.java +++ b/core/src/main/java/hudson/tasks/Maven.java @@ -560,7 +560,7 @@ public class Maven extends Builder { // olamy : but will add a dependency on maven in core -> so not so good String mavenVersion = launcher.getChannel().call(new GetMavenVersion(getHome())); - if (!mavenVersion.equals("")) { + if (!mavenVersion.isEmpty()) { if (mavenReqVersion == MAVEN_20) { if (mavenVersion.startsWith("2.")) return true; diff --git a/core/src/main/java/hudson/util/ArgumentListBuilder.java b/core/src/main/java/hudson/util/ArgumentListBuilder.java index d75377e919..245f3e74a9 100644 --- a/core/src/main/java/hudson/util/ArgumentListBuilder.java +++ b/core/src/main/java/hudson/util/ArgumentListBuilder.java @@ -297,7 +297,7 @@ public class ArgumentListBuilder implements Serializable, Cloneable { for (String arg : args) { if (buf.length() > 0) buf.append(' '); - if (arg.indexOf(' ') >= 0 || arg.length() == 0) + if (arg.indexOf(' ') >= 0 || arg.isEmpty()) buf.append('"').append(arg).append('"'); else buf.append(arg); @@ -439,7 +439,7 @@ public class ArgumentListBuilder implements Serializable, Cloneable { if (buf.length() > 0) buf.append(' '); - if (arg.indexOf(' ') >= 0 || arg.length() == 0) + if (arg.indexOf(' ') >= 0 || arg.isEmpty()) buf.append('"').append(arg).append('"'); else buf.append(arg); diff --git a/core/src/main/java/hudson/util/FormFieldValidator.java b/core/src/main/java/hudson/util/FormFieldValidator.java index f4ec7899a5..9bf1287b9e 100644 --- a/core/src/main/java/hudson/util/FormFieldValidator.java +++ b/core/src/main/java/hudson/util/FormFieldValidator.java @@ -617,7 +617,7 @@ public abstract class FormFieldValidator { } } v = v.trim(); - if (!allowEmpty && v.length() == 0) { + if (!allowEmpty && v.isEmpty()) { fail(); return; } diff --git a/core/src/main/java/hudson/util/FormValidation.java b/core/src/main/java/hudson/util/FormValidation.java index fce24a48de..ac4e69157c 100644 --- a/core/src/main/java/hudson/util/FormValidation.java +++ b/core/src/main/java/hudson/util/FormValidation.java @@ -449,7 +449,7 @@ public abstract class FormValidation extends IOException implements HttpResponse return error(errorMessage); } v = v.trim(); - if (!allowEmpty && v.length() == 0) + if (!allowEmpty && v.isEmpty()) return error(errorMessage); Base64.getDecoder().decode(v.getBytes(StandardCharsets.UTF_8)); @@ -655,8 +655,8 @@ public abstract class FormValidation extends IOException implements HttpResponse QueryParameter qp = p.annotation(QueryParameter.class); if (qp != null) { String name = qp.value(); - if (name.length() == 0) name = p.name(); - if (name == null || name.length() == 0) + if (name.isEmpty()) name = p.name(); + if (name == null || name.isEmpty()) continue; // unknown parameter name. we'll report the error when the form is submitted. if (name.equals("value")) continue; // 'value' parameter is implicit diff --git a/core/src/main/java/hudson/util/LineEndingConversion.java b/core/src/main/java/hudson/util/LineEndingConversion.java index 177ab4cce2..7672e57bbe 100644 --- a/core/src/main/java/hudson/util/LineEndingConversion.java +++ b/core/src/main/java/hudson/util/LineEndingConversion.java @@ -32,7 +32,7 @@ public class LineEndingConversion { * String updated with the new line endings or null if given null. */ public static String convertEOL(String input, EOLType type) { - if (null == input || 0 == input.length()) { + if (null == input || input.isEmpty()) { return input; } // Convert line endings to Unix LF, diff --git a/core/src/main/java/hudson/util/QueryParameterMap.java b/core/src/main/java/hudson/util/QueryParameterMap.java index c4cf323d8c..ba3ce8c0d0 100644 --- a/core/src/main/java/hudson/util/QueryParameterMap.java +++ b/core/src/main/java/hudson/util/QueryParameterMap.java @@ -56,7 +56,7 @@ public class QueryParameterMap { * String that looks like {@code abc=def&ghi=jkl} */ public QueryParameterMap(String queryString) { - if (queryString == null || queryString.length() == 0) return; + if (queryString == null || queryString.isEmpty()) return; for (String param : queryString.split("&")) { String[] kv = param.split("="); String key = URLDecoder.decode(kv[0], StandardCharsets.UTF_8); diff --git a/core/src/main/java/hudson/util/SecretRewriter.java b/core/src/main/java/hudson/util/SecretRewriter.java index 252f8bf9ea..4e50158523 100644 --- a/core/src/main/java/hudson/util/SecretRewriter.java +++ b/core/src/main/java/hudson/util/SecretRewriter.java @@ -170,7 +170,7 @@ public class SecretRewriter { if (child.isDirectory()) { if (!isIgnoredDir(child)) rewritten += rewriteRecursive(child, - relative.length() == 0 ? cn : relative + '/' + cn, + relative.isEmpty() ? cn : relative + '/' + cn, listener); } } diff --git a/core/src/main/java/hudson/util/Service.java b/core/src/main/java/hudson/util/Service.java index b770c5c7c3..b95330870e 100644 --- a/core/src/main/java/hudson/util/Service.java +++ b/core/src/main/java/hudson/util/Service.java @@ -57,7 +57,7 @@ public class Service { String line; while ((line = configFile.readLine()) != null) { line = line.trim(); - if (line.startsWith("#") || line.length() == 0) continue; + if (line.startsWith("#") || line.isEmpty()) continue; try { Class t = classLoader.loadClass(line); @@ -89,7 +89,7 @@ public class Service { if (line.startsWith("#")) continue; // comment line line = line.trim(); - if (line.length() == 0) + if (line.isEmpty()) continue; // empty line. ignore. try { diff --git a/core/src/main/java/hudson/util/jna/RegistryKey.java b/core/src/main/java/hudson/util/jna/RegistryKey.java index cd9e9c0a07..4d89ee3079 100644 --- a/core/src/main/java/hudson/util/jna/RegistryKey.java +++ b/core/src/main/java/hudson/util/jna/RegistryKey.java @@ -52,8 +52,8 @@ public class RegistryKey implements AutoCloseable { } private static String combine(String a, String b) { - if (a.length() == 0) return b; - if (b.length() == 0) return a; + if (a.isEmpty()) return b; + if (b.isEmpty()) return a; return a + '\\' + b; } diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 5cbbf091a5..dda1ef9d81 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -4229,7 +4229,7 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve * if the given name is not good */ public static void checkGoodName(String name) throws Failure { - if (name == null || name.length() == 0) + if (name == null || name.isEmpty()) throw new Failure(Messages.Hudson_NoName()); if (".".equals(name.trim())) diff --git a/core/src/main/java/jenkins/org/apache/commons/validator/routines/InetAddressValidator.java b/core/src/main/java/jenkins/org/apache/commons/validator/routines/InetAddressValidator.java index 23ab213ccd..71e937d02b 100644 --- a/core/src/main/java/jenkins/org/apache/commons/validator/routines/InetAddressValidator.java +++ b/core/src/main/java/jenkins/org/apache/commons/validator/routines/InetAddressValidator.java @@ -99,7 +99,7 @@ public class InetAddressValidator implements Serializable { // verify that address subgroups are legal for (String ipSegment : groups) { - if (ipSegment == null || ipSegment.length() == 0) { + if (ipSegment == null || ipSegment.isEmpty()) { return false; } @@ -186,7 +186,7 @@ public class InetAddressValidator implements Serializable { int emptyOctets = 0; // consecutive empty chunks for (int index = 0; index < octets.length; index++) { String octet = octets[index]; - if (octet.length() == 0) { + if (octet.isEmpty()) { emptyOctets++; if (emptyOctets > 1) { return false; diff --git a/core/src/main/java/jenkins/org/apache/commons/validator/routines/RegexValidator.java b/core/src/main/java/jenkins/org/apache/commons/validator/routines/RegexValidator.java index d0d2e665a5..0873e49ac7 100644 --- a/core/src/main/java/jenkins/org/apache/commons/validator/routines/RegexValidator.java +++ b/core/src/main/java/jenkins/org/apache/commons/validator/routines/RegexValidator.java @@ -131,7 +131,7 @@ public class RegexValidator implements Serializable { patterns = new Pattern[regexs.length]; int flags = caseSensitive ? 0 : Pattern.CASE_INSENSITIVE; for (int i = 0; i < regexs.length; i++) { - if (regexs[i] == null || regexs[i].length() == 0) { + if (regexs[i] == null || regexs[i].isEmpty()) { throw new IllegalArgumentException("Regular expression[" + i + "] is missing"); } patterns[i] = Pattern.compile(regexs[i], flags); diff --git a/core/src/main/java/jenkins/telemetry/impl/StaplerDispatches.java b/core/src/main/java/jenkins/telemetry/impl/StaplerDispatches.java index cadc38cd47..66078caa3d 100644 --- a/core/src/main/java/jenkins/telemetry/impl/StaplerDispatches.java +++ b/core/src/main/java/jenkins/telemetry/impl/StaplerDispatches.java @@ -66,7 +66,7 @@ public class StaplerDispatches extends Telemetry { @Override public JSONObject createContent() { - if (traces.size() == 0) { + if (traces.isEmpty()) { return null; } Map info = new TreeMap<>(); diff --git a/core/src/main/java/jenkins/telemetry/impl/UserLanguages.java b/core/src/main/java/jenkins/telemetry/impl/UserLanguages.java index ef84f6bca1..3b99f708ab 100644 --- a/core/src/main/java/jenkins/telemetry/impl/UserLanguages.java +++ b/core/src/main/java/jenkins/telemetry/impl/UserLanguages.java @@ -82,7 +82,7 @@ public class UserLanguages extends Telemetry { @Override public JSONObject createContent() { - if (requestsByLanguage.size() == 0) { + if (requestsByLanguage.isEmpty()) { return null; } Map currentRequests = new TreeMap<>(requestsByLanguage); diff --git a/core/src/main/java/jenkins/util/TreeStringBuilder.java b/core/src/main/java/jenkins/util/TreeStringBuilder.java index 653df3a0ff..d771e6ff95 100644 --- a/core/src/main/java/jenkins/util/TreeStringBuilder.java +++ b/core/src/main/java/jenkins/util/TreeStringBuilder.java @@ -37,7 +37,7 @@ public class TreeStringBuilder { * if any. */ public Child intern(final String s) { - if (s.length() == 0) { + if (s.isEmpty()) { return this; } diff --git a/core/src/main/java/jenkins/util/VirtualFile.java b/core/src/main/java/jenkins/util/VirtualFile.java index 7c0d68ece2..609b18ec1c 100644 --- a/core/src/main/java/jenkins/util/VirtualFile.java +++ b/core/src/main/java/jenkins/util/VirtualFile.java @@ -1096,7 +1096,7 @@ public abstract class VirtualFile implements Comparable, Serializab @Override @Restricted(NoExternalUse.class) public boolean isDescendant(String potentialChildRelativePath) throws IOException { - if (potentialChildRelativePath.equals("") && cacheDescendant) { + if (potentialChildRelativePath.isEmpty() && cacheDescendant) { return true; } diff --git a/core/src/main/java/jenkins/widgets/HistoryPageFilter.java b/core/src/main/java/jenkins/widgets/HistoryPageFilter.java index fc54dd1b7f..d289db70a7 100644 --- a/core/src/main/java/jenkins/widgets/HistoryPageFilter.java +++ b/core/src/main/java/jenkins/widgets/HistoryPageFilter.java @@ -181,7 +181,7 @@ public class HistoryPageFilter { break; } } - if (itemsToAdd.size() == 0) { + if (itemsToAdd.isEmpty()) { // All builds are older than newerThan ? hasDownPage = true; } else {