diff --git a/core/src/main/java/hudson/model/AllView.java b/core/src/main/java/hudson/model/AllView.java index eb2d80ebce..f92773678e 100644 --- a/core/src/main/java/hudson/model/AllView.java +++ b/core/src/main/java/hudson/model/AllView.java @@ -31,11 +31,11 @@ import java.io.IOException; import java.util.Collection; import java.util.List; import java.util.Locale; +import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import jenkins.util.SystemProperties; -import org.apache.commons.lang.StringUtils; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; @@ -146,7 +146,7 @@ public class AllView extends View { // name conflict, we cannot rename the all view anyway return primaryView; } - if (StringUtils.equals(v.getViewName(), primaryView)) { + if (Objects.equals(v.getViewName(), primaryView)) { if (v instanceof AllView) { allView = (AllView) v; } else { diff --git a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java index a2ac42447b..615bd84e8b 100644 --- a/core/src/main/java/hudson/model/ChoiceParameterDefinition.java +++ b/core/src/main/java/hudson/model/ChoiceParameterDefinition.java @@ -14,7 +14,6 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; import net.sf.json.JSONObject; -import org.apache.commons.lang.StringUtils; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -39,7 +38,7 @@ public class ChoiceParameterDefinition extends SimpleParameterDefinition { public static boolean areValidChoices(@NonNull String choices) { String strippedChoices = choices.trim(); - return !StringUtils.isEmpty(strippedChoices) && strippedChoices.split(CHOICES_DELIMITER).length > 0; + return strippedChoices != null && !strippedChoices.isEmpty() && strippedChoices.split(CHOICES_DELIMITER).length > 0; } public ChoiceParameterDefinition(@NonNull String name, @NonNull String choices, @CheckForNull String description) { diff --git a/core/src/main/java/hudson/model/FileParameterValue.java b/core/src/main/java/hudson/model/FileParameterValue.java index 974f76b2f4..e11d31c891 100644 --- a/core/src/main/java/hudson/model/FileParameterValue.java +++ b/core/src/main/java/hudson/model/FileParameterValue.java @@ -47,7 +47,6 @@ import org.apache.commons.fileupload.disk.DiskFileItem; import org.apache.commons.fileupload.util.FileItemHeadersImpl; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; @@ -158,7 +157,7 @@ public class FileParameterValue extends ParameterValue { @SuppressFBWarnings(value = {"FILE_UPLOAD_FILENAME", "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"}, justification = "TODO needs triage") @Override public Environment setUp(AbstractBuild build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException { - if (!StringUtils.isEmpty(location) && !StringUtils.isEmpty(file.getName())) { + if (location != null && !location.isEmpty() && file.getName() != null && !file.getName().isEmpty()) { listener.getLogger().println("Copying file to " + location); FilePath ws = build.getWorkspace(); if (ws == null) { diff --git a/core/src/main/java/hudson/model/Items.java b/core/src/main/java/hudson/model/Items.java index 1d0c607ad9..7bda39bc80 100644 --- a/core/src/main/java/hudson/model/Items.java +++ b/core/src/main/java/hudson/model/Items.java @@ -54,7 +54,6 @@ import jenkins.model.DirectlyModifiableTopLevelItemGroup; import jenkins.model.Jenkins; import jenkins.util.MemoryReductionUtil; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; import org.springframework.security.core.Authentication; /** @@ -236,7 +235,7 @@ public class Items { StringTokenizer tokens = new StringTokenizer(list, ","); while (tokens.hasMoreTokens()) { String fullName = tokens.nextToken().trim(); - if (StringUtils.isNotEmpty(fullName)) { + if (fullName != null && !fullName.isEmpty()) { T item = jenkins.getItem(fullName, context, type); if (item != null) r.add(item); diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index 0ae31abe1d..0517e73d7d 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -237,7 +237,7 @@ public abstract class Slave extends Node implements Serializable { } public ComputerLauncher getLauncher() { - if (launcher == null && !StringUtils.isEmpty(agentCommand)) { + if (launcher == null && agentCommand != null && !agentCommand.isEmpty()) { try { launcher = (ComputerLauncher) Jenkins.get().getPluginManager().uberClassLoader.loadClass("hudson.slaves.CommandLauncher").getConstructor(String.class, EnvVars.class).newInstance(agentCommand, null); agentCommand = null; diff --git a/core/src/main/java/hudson/model/ViewDescriptor.java b/core/src/main/java/hudson/model/ViewDescriptor.java index 7a77f4e553..7d4417e024 100644 --- a/core/src/main/java/hudson/model/ViewDescriptor.java +++ b/core/src/main/java/hudson/model/ViewDescriptor.java @@ -32,6 +32,7 @@ import hudson.views.ListViewColumnDescriptor; import hudson.views.ViewJobFilter; import java.util.Iterator; import java.util.List; +import java.util.Objects; import jenkins.model.DirectlyModifiableTopLevelItemGroup; import jenkins.model.Jenkins; import org.apache.commons.lang.StringUtils; @@ -147,7 +148,7 @@ public abstract class ViewDescriptor extends Descriptor { if (v.getViewName().equals(view.getViewName())) { continue; } - if (StringUtils.equals(v.getDisplayName(), value)) { + if (Objects.equals(v.getDisplayName(), value)) { return FormValidation.warning(Messages.View_DisplayNameNotUniqueWarning(value)); } } diff --git a/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java b/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java index da1a9bb26b..c81c642650 100644 --- a/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java +++ b/core/src/main/java/hudson/security/HudsonAuthenticationEntryPoint.java @@ -37,7 +37,6 @@ import java.text.MessageFormat; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang.StringUtils; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.springframework.security.authentication.InsufficientAuthenticationException; @@ -81,7 +80,7 @@ public class HudsonAuthenticationEntryPoint implements AuthenticationEntryPoint } else { // give the opportunity to include the target URL String uriFrom = req.getRequestURI(); - if (!StringUtils.isEmpty(req.getQueryString())) uriFrom += "?" + req.getQueryString(); + if (req.getQueryString() != null && !req.getQueryString().isEmpty()) uriFrom += "?" + req.getQueryString(); String loginForm = req.getContextPath() + loginFormUrl; loginForm = MessageFormat.format(loginForm, URLEncoder.encode(uriFrom, "UTF-8")); req.setAttribute("loginForm", loginForm); diff --git a/core/src/main/java/jenkins/model/IdStrategy.java b/core/src/main/java/jenkins/model/IdStrategy.java index 69ab4aaedf..34f798844e 100644 --- a/core/src/main/java/jenkins/model/IdStrategy.java +++ b/core/src/main/java/jenkins/model/IdStrategy.java @@ -33,10 +33,10 @@ import hudson.model.AbstractDescribableImpl; import java.io.Serializable; import java.util.Comparator; import java.util.Locale; +import java.util.Objects; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; import org.jenkinsci.Symbol; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.ProtectedExternally; @@ -253,7 +253,7 @@ public abstract class IdStrategy extends AbstractDescribableImpl imp @Override public boolean equals(@NonNull String id1, @NonNull String id2) { - return StringUtils.equals(id1, id2); + return Objects.equals(id1, id2); } @Override @@ -289,7 +289,7 @@ public abstract class IdStrategy extends AbstractDescribableImpl imp @Override public boolean equals(@NonNull String id1, @NonNull String id2) { - return StringUtils.equals(keyFor(id1), keyFor(id2)); + return Objects.equals(keyFor(id1), keyFor(id2)); } @Override diff --git a/core/src/main/java/jenkins/model/ProjectNamingStrategy.java b/core/src/main/java/jenkins/model/ProjectNamingStrategy.java index 8e12e96b90..cd09650979 100644 --- a/core/src/main/java/jenkins/model/ProjectNamingStrategy.java +++ b/core/src/main/java/jenkins/model/ProjectNamingStrategy.java @@ -154,7 +154,7 @@ public abstract class ProjectNamingStrategy implements Describable build, TaskListener listener) { - if (StringUtils.isEmpty(path)) { + if (path == null || path.isEmpty()) { return null; } diff --git a/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java b/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java index ed77ad6756..2327052464 100644 --- a/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java +++ b/core/src/main/java/jenkins/mvn/FilePathSettingsProvider.java @@ -4,7 +4,6 @@ import hudson.Extension; import hudson.FilePath; import hudson.model.AbstractBuild; import hudson.model.TaskListener; -import org.apache.commons.lang.StringUtils; import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; @@ -28,7 +27,7 @@ public class FilePathSettingsProvider extends SettingsProvider { @Override public FilePath supplySettings(AbstractBuild build, TaskListener listener) { - if (StringUtils.isEmpty(path)) { + if (path == null || path.isEmpty()) { return null; } diff --git a/test/src/test/java/hudson/cli/DisablePluginCommandTest.java b/test/src/test/java/hudson/cli/DisablePluginCommandTest.java index d95055bab9..83c2d94405 100644 --- a/test/src/test/java/hudson/cli/DisablePluginCommandTest.java +++ b/test/src/test/java/hudson/cli/DisablePluginCommandTest.java @@ -30,6 +30,7 @@ import static hudson.cli.CLICommandInvoker.Matcher.succeeded; import static hudson.cli.DisablePluginCommand.RETURN_CODE_NOT_DISABLED_DEPENDANTS; import static hudson.cli.DisablePluginCommand.RETURN_CODE_NO_SUCH_PLUGIN; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.emptyOrNullString; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertEquals; @@ -293,7 +294,7 @@ public class DisablePluginCommandTest { assertPluginDisabled("depender"); assertPluginDisabled("mandatory-depender"); - assertTrue("No log in quiet mode if all plugins disabled", StringUtils.isEmpty(result.stdout())); + assertThat("No log in quiet mode if all plugins disabled", result.stdout(), is(emptyOrNullString())); } /** diff --git a/test/src/test/java/hudson/model/QueueTest.java b/test/src/test/java/hudson/model/QueueTest.java index 588ecc2456..6d0c0cbfff 100644 --- a/test/src/test/java/hudson/model/QueueTest.java +++ b/test/src/test/java/hudson/model/QueueTest.java @@ -133,7 +133,6 @@ import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.servlet.ServletHandler; @@ -1283,7 +1282,7 @@ public class QueueTest { DomElement buildQueue = page.getElementById("buildQueue"); DomNodeList anchors = buildQueue.getElementsByTagName("a"); HtmlAnchor anchorWithTooltip = (HtmlAnchor) anchors.stream() - .filter(a -> StringUtils.isNotEmpty(a.getAttribute("tooltip"))) + .filter(a -> a.getAttribute("tooltip") != null && !a.getAttribute("tooltip").isEmpty()) .findFirst().orElseThrow(IllegalStateException::new); String tooltip = anchorWithTooltip.getAttribute("tooltip"); diff --git a/test/src/test/java/jenkins/security/Security637Test.java b/test/src/test/java/jenkins/security/Security637Test.java index afdd6fd480..fb3bbe5cf3 100644 --- a/test/src/test/java/jenkins/security/Security637Test.java +++ b/test/src/test/java/jenkins/security/Security637Test.java @@ -45,7 +45,6 @@ import java.net.URLStreamHandler; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; @@ -193,7 +192,7 @@ public class Security637Test { URLJobProperty urlJobProperty = project.getProperty(URLJobProperty.class); for (URL url : urlJobProperty.urlSet) { URLStreamHandler handler = (URLStreamHandler) handlerField.get(url); - if (StringUtils.isEmpty(url.getHost())) { + if (url.getHost() == null || url.getHost().isEmpty()) { assertThat(handler.getClass().getName(), not(containsString("SafeURLStreamHandler"))); } else { assertThat(handler.getClass().getName(), containsString("SafeURLStreamHandler"));