diff --git a/core/src/main/java/hudson/ClassicPluginStrategy.java b/core/src/main/java/hudson/ClassicPluginStrategy.java index e46014f1a9208589b1d9aa645a7b49d5cac2cd57..58c528474ff484b145c342c4eac05ac97461505d 100644 --- a/core/src/main/java/hudson/ClassicPluginStrategy.java +++ b/core/src/main/java/hudson/ClassicPluginStrategy.java @@ -289,7 +289,7 @@ public class ClassicPluginStrategy implements PluginStrategy { protected ClassLoader createClassLoader(List paths, ClassLoader parent, Attributes atts) throws IOException { if (atts != null) { String usePluginFirstClassLoader = atts.getValue( "PluginFirstClassLoader" ); - if (Boolean.valueOf( usePluginFirstClassLoader )) { + if (Boolean.parseBoolean( usePluginFirstClassLoader )) { PluginFirstClassLoader classLoader = new PluginFirstClassLoader(); classLoader.setParentFirst( false ); classLoader.setParent( parent ); diff --git a/core/src/main/java/hudson/DependencyRunner.java b/core/src/main/java/hudson/DependencyRunner.java index 4a967b47da645a948e32554a37724a6dec5a3a15..0ad56be7e1b0973ea05550696a971fa2df47ef55 100644 --- a/core/src/main/java/hudson/DependencyRunner.java +++ b/core/src/main/java/hudson/DependencyRunner.java @@ -47,7 +47,7 @@ public class DependencyRunner implements Runnable { ProjectRunnable runnable; - List polledProjects = new ArrayList(); + List polledProjects = new ArrayList<>(); public DependencyRunner(ProjectRunnable runnable) { this.runnable = runnable; @@ -56,7 +56,7 @@ public class DependencyRunner implements Runnable { public void run() { SecurityContext oldContext = ACL.impersonate(ACL.SYSTEM); try { - Set topLevelProjects = new HashSet(); + Set topLevelProjects = new HashSet<>(); // Get all top-level projects LOGGER.fine("assembling top level projects"); for (AbstractProject p : Jenkins.get().allItems(AbstractProject.class)) diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 4020d84c68cf05808060a8955b203b14ce3a4325..0438e8135c8730aa0d5d26a702a95a32071fc0b0 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -951,7 +951,7 @@ public class Functions { @Restricted(DoNotUse.class) @RestrictedSince("2.12") public static List getNodePropertyDescriptors(Class clazz) { - List result = new ArrayList(); + List result = new ArrayList<>(); Collection list = (Collection) Jenkins.get().getDescriptorList(NodeProperty.class); for (NodePropertyDescriptor npd : list) { if (npd.isApplicable(clazz)) { @@ -967,7 +967,7 @@ public class Functions { * @since 1.520 */ public static List getGlobalNodePropertyDescriptors() { - List result = new ArrayList(); + List result = new ArrayList<>(); Collection list = (Collection) Jenkins.get().getDescriptorList(NodeProperty.class); for (NodePropertyDescriptor npd : list) { if (npd.isApplicableAsGlobal()) { @@ -996,7 +996,7 @@ public class Functions { */ public static Collection getSortedDescriptorsForGlobalConfig(Predicate predicate) { ExtensionList exts = ExtensionList.lookup(Descriptor.class); - List r = new ArrayList(exts.size()); + List r = new ArrayList<>(exts.size()); for (ExtensionComponent c : exts.getComponents()) { Descriptor d = c.getInstance(); @@ -1008,7 +1008,7 @@ public class Functions { } Collections.sort(r); - List answer = new ArrayList(r.size()); + List answer = new ArrayList<>(r.size()); for (Tag d : r) answer.add(d.d); return DescriptorVisibilityFilter.apply(Jenkins.get(),answer); @@ -1059,8 +1059,8 @@ public class Functions { } public int compareTo(Tag that) { - int r = Double.compare(this.ordinal, that.ordinal); - if (r!=0) return -r; // descending for ordinal + int r = Double.compare(that.ordinal, this.ordinal); + if (r!=0) return r; // descending for ordinal by reversing the order for compare return this.hierarchy.compareTo(that.hierarchy); } } @@ -1090,7 +1090,7 @@ public class Functions { * Computes the relative path from the current page to the given item. */ public static String getRelativeLinkTo(Item p) { - Map ancestors = new HashMap(); + Map ancestors = new HashMap<>(); View view=null; StaplerRequest request = Stapler.getCurrentRequest(); @@ -1166,7 +1166,7 @@ public class Functions { String separationString = useDisplayName ? " ยป " : "/"; // first list up all the parents - Map parents = new HashMap(); + Map parents = new HashMap<>(); int depth=0; while (g!=null) { parents.put(g, depth++); @@ -1233,7 +1233,7 @@ public class Functions { } public static Map dumpAllThreads() { - Map sorted = new TreeMap(new ThreadSorter()); + Map sorted = new TreeMap<>(new ThreadSorter()); sorted.putAll(Thread.getAllStackTraces()); return sorted; } @@ -1251,7 +1251,7 @@ public class Functions { // Common code for sorting Threads/ThreadInfos by ThreadGroup private static class ThreadSorterBase { - protected Map map = new HashMap(); + protected Map map = new HashMap<>(); private ThreadSorterBase() { ThreadGroup tg = Thread.currentThread().getThreadGroup(); @@ -1475,7 +1475,7 @@ public class Functions { return Messages.Functions_NoExceptionDetails(); } StringBuilder s = new StringBuilder(); - doPrintStackTrace(s, t, null, "", new HashSet()); + doPrintStackTrace(s, t, null, "", new HashSet<>()); return s.toString(); } private static void doPrintStackTrace(@Nonnull StringBuilder s, @Nonnull Throwable t, @CheckForNull Throwable higher, @Nonnull String prefix, @Nonnull Set encountered) { @@ -1840,7 +1840,7 @@ public class Functions { public List getLoggerNames() { while (true) { try { - List r = new ArrayList(); + List r = new ArrayList<>(); Enumeration e = LogManager.getLogManager().getLoggerNames(); while (e.hasMoreElements()) r.add(e.nextElement()); @@ -1933,7 +1933,7 @@ public class Functions { } public static List getRequestHeaders(String name) { - List r = new ArrayList(); + List r = new ArrayList<>(); Enumeration e = Stapler.getCurrentRequest().getHeaders(name); while (e.hasMoreElements()) { r.add(e.nextElement().toString()); @@ -1949,7 +1949,7 @@ public class Functions { } public static ArrayList getCLICommands() { - ArrayList all = new ArrayList(CLICommand.all()); + ArrayList all = new ArrayList<>(CLICommand.all()); Collections.sort(all, new Comparator() { public int compare(CLICommand cliCommand, CLICommand cliCommand1) { return cliCommand.getName().compareTo(cliCommand1.getName()); diff --git a/core/src/main/java/hudson/PluginFirstClassLoader.java b/core/src/main/java/hudson/PluginFirstClassLoader.java index 31c93a1fd36dbb629308b48a85a095cd2bd89ee6..dde635d24d880692f08fb31411c24eca9105d069 100644 --- a/core/src/main/java/hudson/PluginFirstClassLoader.java +++ b/core/src/main/java/hudson/PluginFirstClassLoader.java @@ -50,7 +50,7 @@ public class PluginFirstClassLoader super(null, false); } - private List urls = new ArrayList(); + private List urls = new ArrayList<>(); public void addPathFiles( Collection paths ) throws IOException diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index f9ff1ce5fc6e0c5694625511b0c4b07fe739c6d2..281b0053360b459db37abc5acceafb7135c9c21c 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -2131,7 +2131,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas * Stores {@link Plugin} instances. */ /*package*/ static final class PluginInstanceStore { - final Map store = new ConcurrentHashMap(); + final Map store = new ConcurrentHashMap<>(); } /** @@ -2174,7 +2174,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas @Extension @Symbol("pluginUpdate") public static final class PluginUpdateMonitor extends AdministrativeMonitor { - private Map pluginsToBeUpdated = new HashMap(); + private Map pluginsToBeUpdated = new HashMap<>(); /** * Convenience method to ease access to this monitor, this allows other plugins to register required updates. diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index 20539986c3a9ddf912a2358a75700fd5376e2b05..e0009b24536e666eaad495bc25bdf2ee9c6bfbfb 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -905,10 +905,10 @@ public class Util { } byte[] bytes = new String(new int[] { codePoint }, 0, 1).getBytes(StandardCharsets.UTF_8); - for(int j=0;j> 4) & 0xF)); - out.append(toDigit(bytes[j] & 0xF)); + out.append(toDigit((aByte >> 4) & 0xF)); + out.append(toDigit(aByte & 0xF)); } if(Character.charCount(codePoint) > 1) { diff --git a/core/src/main/java/hudson/diagnosis/OldDataMonitor.java b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java index ea4c484f23ea5b0e0b483cf72ed3eb774790af58..09db13e164a9d90cddbe622de1fa701c2e6cf95b 100644 --- a/core/src/main/java/hudson/diagnosis/OldDataMonitor.java +++ b/core/src/main/java/hudson/diagnosis/OldDataMonitor.java @@ -294,7 +294,7 @@ public class OldDataMonitor extends AdministrativeMonitor { */ @Restricted(NoExternalUse.class) public Iterator getVersionList() { - TreeSet set = new TreeSet(); + TreeSet set = new TreeSet<>(); for (VersionRange vr : data.values()) { if (vr.max != null) { set.add(vr.max); @@ -364,7 +364,7 @@ public class OldDataMonitor extends AdministrativeMonitor { * does occur: just means the user will be prompted to discard less than they should have been (and * would see the warning again after next restart). */ - List removed = new ArrayList(); + List removed = new ArrayList<>(); for (Map.Entry entry : data.entrySet()) { if (matchingPredicate.apply(entry)) { Saveable s = entry.getKey().get(); diff --git a/core/src/main/java/hudson/logging/LogRecorder.java b/core/src/main/java/hudson/logging/LogRecorder.java index 89bb832b52893e3352d7a3a36c7d91a7c271dea6..61bb1bb187f15aeb3f30555761f4f7c516b1b8df 100644 --- a/core/src/main/java/hudson/logging/LogRecorder.java +++ b/core/src/main/java/hudson/logging/LogRecorder.java @@ -262,7 +262,7 @@ public class LogRecorder extends AbstractModelObject implements Saveable { private static final class SetLevel extends MasterToSlaveCallable { /** known loggers (kept per agent), to avoid GC */ - @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") private static final Set loggers = new HashSet(); + @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") private static final Set loggers = new HashSet<>(); private final String name; private final Level level; SetLevel(String name, Level level) { @@ -421,8 +421,9 @@ public class LogRecorder extends AbstractModelObject implements Saveable { * @since 1.519 */ public Map> getSlaveLogRecords() { - Map> result = new TreeMap>(new Comparator() { + Map> result = new TreeMap<>(new Comparator() { final Collator COLL = Collator.getInstance(); + public int compare(Computer c1, Computer c2) { return COLL.compare(c1.getDisplayName(), c2.getDisplayName()); } @@ -431,7 +432,7 @@ public class LogRecorder extends AbstractModelObject implements Saveable { if (c.getName().length() == 0) { continue; // master } - List recs = new ArrayList(); + List recs = new ArrayList<>(); try { for (LogRecord rec : c.getLogRecords()) { for (Target t : targets) { diff --git a/core/src/main/java/hudson/model/AbstractCIBase.java b/core/src/main/java/hudson/model/AbstractCIBase.java index aec90b19a383ec6cd047ef1523087d7163619250..f6c11f0219d0a0d5f27ecf6df75d36fc3551f44a 100644 --- a/core/src/main/java/hudson/model/AbstractCIBase.java +++ b/core/src/main/java/hudson/model/AbstractCIBase.java @@ -93,7 +93,7 @@ public abstract class AbstractCIBase extends Node implements ItemGroup disabledAdministrativeMonitors = new CopyOnWriteArraySet(); + /*package*/ final CopyOnWriteArraySet disabledAdministrativeMonitors = new CopyOnWriteArraySet<>(); @Restricted(NoExternalUse.class) public CopyOnWriteArraySet getDisabledAdministrativeMonitors(){ @@ -192,11 +192,11 @@ public abstract class AbstractCIBase extends Node implements ItemGroup computers = getComputerMap(); - final Set old = new HashSet(computers.size()); + final Set old = new HashSet<>(computers.size()); Queue.withLock(new Runnable() { @Override public void run() { - Map byName = new HashMap(); + Map byName = new HashMap<>(); for (Computer c : computers.values()) { old.add(c); Node node = c.getNode(); diff --git a/core/src/main/java/hudson/model/AbstractItem.java b/core/src/main/java/hudson/model/AbstractItem.java index cc366d734e02d43e5ead251fa7565e1f171ab210..cb15592f2d3cf3e8ab9bbc3460c2d246922e3030 100644 --- a/core/src/main/java/hudson/model/AbstractItem.java +++ b/core/src/main/java/hudson/model/AbstractItem.java @@ -981,7 +981,7 @@ public abstract class AbstractItem extends Actionable implements Item, HttpDelet /** * Replaceable pronoun of that points to a job. Defaults to "Job"/"Project" depending on the context. */ - public static final Message PRONOUN = new Message(); + public static final Message PRONOUN = new Message<>(); /** * Replaceable noun for describing the kind of task that this item represents. Defaults to "Build". diff --git a/core/src/main/java/hudson/model/AbstractProject.java b/core/src/main/java/hudson/model/AbstractProject.java index 4e584efb0d6d6cf9e8632d48b40dfe0475f8ba98..8351ce7ce1cbe40f1e28a0870dbca76daa736a26 100644 --- a/core/src/main/java/hudson/model/AbstractProject.java +++ b/core/src/main/java/hudson/model/AbstractProject.java @@ -232,7 +232,7 @@ public abstract class AbstractProject

,R extends A * List of all {@link Trigger}s for this project. */ @AdaptField(was=List.class) - protected volatile DescribableList,TriggerDescriptor> triggers = new DescribableList,TriggerDescriptor>(this); + protected volatile DescribableList,TriggerDescriptor> triggers = new DescribableList<>(this); private static final AtomicReferenceFieldUpdater triggersUpdater = AtomicReferenceFieldUpdater.newUpdater(AbstractProject.class,DescribableList.class,"triggers"); @@ -244,7 +244,7 @@ public abstract class AbstractProject

,R extends A * come and go as configuration change, so it's kept separate. */ @CopyOnWrite - protected transient volatile List transientActions = new Vector(); + protected transient volatile List transientActions = new Vector<>(); private boolean concurrentBuild; @@ -260,9 +260,8 @@ public abstract class AbstractProject

,R extends A buildMixIn = createBuildMixIn(); builds = buildMixIn.getRunMap(); - final Jenkins j = Jenkins.get(); - final List nodes = j != null ? j.getNodes() : null; - if(nodes!=null && !nodes.isEmpty()) { + Jenkins j = Jenkins.getInstanceOrNull(); + if (j != null && !j.getNodes().isEmpty()) { // if a new job is configured with Hudson that already has agent nodes // make it roamable by default canRoam = true; @@ -320,7 +319,7 @@ public abstract class AbstractProject

,R extends A scm = new NullSCM(); // perhaps it was pointing to a plugin that no longer exists. if(transientActions==null) - transientActions = new Vector(); // happens when loaded from disk + transientActions = new Vector<>(); // happens when loaded from disk updateTransientActions(); } @@ -731,7 +730,7 @@ public abstract class AbstractProject

,R extends A } protected List createTransientActions() { - Vector ta = new Vector(); + Vector ta = new Vector<>(); for (JobProperty p : Util.fixNull(properties)) ta.addAll(p.getJobActions((P)this)); @@ -817,7 +816,7 @@ public abstract class AbstractProject

,R extends A */ @WithBridgeMethods(Future.class) public QueueTaskFuture scheduleBuild2(int quietPeriod, Cause c, Collection actions) { - List queueActions = new ArrayList(actions); + List queueActions = new ArrayList<>(actions); if (c != null) { queueActions.add(new CauseAction(c)); } @@ -987,7 +986,7 @@ public abstract class AbstractProject

,R extends A @Override public List getActions() { // add all the transient actions, too - List actions = new Vector(super.getActions()); + List actions = new Vector<>(super.getActions()); actions.addAll(transientActions); // return the read only list to cause a failure on plugins who try to add an action here return Collections.unmodifiableList(actions); @@ -1127,7 +1126,7 @@ public abstract class AbstractProject

,R extends A } public List getSubTasks() { - List r = new ArrayList(); + List r = new ArrayList<>(); r.add(this); for (SubTaskContributor euc : SubTaskContributor.all()) r.addAll(euc.forProject(this)); @@ -1173,7 +1172,7 @@ public abstract class AbstractProject

,R extends A */ public ResourceList getResourceList() { final Set resourceActivities = getResourceActivities(); - final List resourceLists = new ArrayList(1 + resourceActivities.size()); + final List resourceLists = new ArrayList<>(1 + resourceActivities.size()); for (ResourceActivity activity : resourceActivities) { if (activity != this && activity != null) { // defensive infinite recursion and null check @@ -1605,7 +1604,7 @@ public abstract class AbstractProject

,R extends A * @return A List of upstream projects that has a {@link BuildTrigger} to this project. */ public final List getBuildTriggerUpstreamProjects() { - ArrayList result = new ArrayList(); + ArrayList result = new ArrayList<>(); for (AbstractProject ap : getUpstreamProjects()) { BuildTrigger buildTrigger = ap.getPublishersList().get(BuildTrigger.class); if (buildTrigger != null) @@ -1642,7 +1641,7 @@ public abstract class AbstractProject

,R extends A * numbers of that project. */ public SortedMap getRelationship(AbstractProject that) { - TreeMap r = new TreeMap(REVERSE_INTEGER_COMPARATOR); + TreeMap r = new TreeMap<>(REVERSE_INTEGER_COMPARATOR); checkAndRecord(that, r, this.getBuilds()); // checkAndRecord(that, r, that.getBuilds()); @@ -1815,7 +1814,7 @@ public abstract class AbstractProject

,R extends A throws FormException, ServletException { JSONObject data = req.getSubmittedForm(); - List r = new Vector(); + List r = new Vector<>(); for (Descriptor d : descriptors) { String safeName = d.getJsonSafeClassName(); if (req.getParameter(safeName) != null) { @@ -2016,7 +2015,7 @@ public abstract class AbstractProject

,R extends A } List getSeeds() { - ArrayList terms = new ArrayList(); + ArrayList terms = new ArrayList<>(); boolean trailingQuote = source.endsWith("\""); boolean leadingQuote = source.startsWith("\""); boolean trailingSpace = source.endsWith(" "); @@ -2082,7 +2081,7 @@ public abstract class AbstractProject

,R extends A * @deprecated Use {@link ParameterizedJobMixIn#BUILD_NOW_TEXT}. */ @Deprecated - public static final Message BUILD_NOW_TEXT = new Message(); + public static final Message BUILD_NOW_TEXT = new Message<>(); /** * Used for CLI binding. diff --git a/core/src/main/java/hudson/model/BooleanParameterDefinition.java b/core/src/main/java/hudson/model/BooleanParameterDefinition.java index 15cb4ec80aee93663f490f5f86f1eb974698bce1..5a96b06ec2459263a123050654fa3c01a114262c 100644 --- a/core/src/main/java/hudson/model/BooleanParameterDefinition.java +++ b/core/src/main/java/hudson/model/BooleanParameterDefinition.java @@ -65,7 +65,7 @@ public class BooleanParameterDefinition extends SimpleParameterDefinition { } public ParameterValue createValue(String value) { - return new BooleanParameterValue(getName(),Boolean.valueOf(value),getDescription()); + return new BooleanParameterValue(getName(),Boolean.parseBoolean(value),getDescription()); } @Override diff --git a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java index aa92c9c1e83ef29a147d544106b69229bfa145d8..679ca34f66acf837d06e2f6fa01be6c28436d2e6 100644 --- a/core/src/main/java/hudson/model/DirectoryBrowserSupport.java +++ b/core/src/main/java/hudson/model/DirectoryBrowserSupport.java @@ -181,7 +181,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { } String path = getPath(req); - if(path.replace('\\','/').indexOf("/../")!=-1) { + if(path.replace('\\', '/').contains("/../")) { // don't serve anything other than files in the artifacts dir rsp.sendError(HttpServletResponse.SC_BAD_REQUEST); return; @@ -413,7 +413,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { * from a string like "/foo/bar/zot". */ private List buildParentPath(String pathList, int restSize) { - List r = new ArrayList(); + List r = new ArrayList<>(); StringTokenizer tokens = new StringTokenizer(pathList, "/"); int total = tokens.countTokens(); int current=1; @@ -669,7 +669,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { * (this mechanism is used to skip empty intermediate directory.) */ private static List> buildChildPaths(VirtualFile cur, Locale locale) throws IOException { - List> r = new ArrayList>(); + List> r = new ArrayList<>(); VirtualFile[] files = cur.list(); Arrays.sort(files,new FileComparator(locale)); @@ -680,12 +680,12 @@ public final class DirectoryBrowserSupport implements HttpResponse { r.add(Collections.singletonList(p)); } else { // find all empty intermediate directory - List l = new ArrayList(); + List l = new ArrayList<>(); l.add(p); String relPath = Util.rawEncode(f.getName()); while(true) { // files that don't start with '.' qualify for 'meaningful files', nor SCM related files - List sub = new ArrayList(); + List sub = new ArrayList<>(); for (VirtualFile vf : f.list()) { String name = vf.getName(); if (!name.startsWith(".") && !name.equals("CVS") && !name.equals(".svn")) { @@ -714,7 +714,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { Collection files = baseDir.list(pattern, null, /* TODO what is the user expectation? */true); if (!files.isEmpty()) { - List> r = new ArrayList>(files.size()); + List> r = new ArrayList<>(files.size()); for (String match : files) { List file = buildPathList(baseDir, baseDir.child(match), baseRef); r.add(file); @@ -729,7 +729,7 @@ public final class DirectoryBrowserSupport implements HttpResponse { * Builds a path list from the current workspace directory down to the specified file path. */ private static List buildPathList(VirtualFile baseDir, VirtualFile filePath, String baseRef) throws IOException { - List pathList = new ArrayList(); + List pathList = new ArrayList<>(); StringBuilder href = new StringBuilder(baseRef); buildPathList(baseDir, filePath, pathList, href); diff --git a/core/src/main/java/hudson/model/Node.java b/core/src/main/java/hudson/model/Node.java index 48ea56ccaf40dc0316e591878d53a78d3d8ff738..8fcb538f7c7bde582c279044ba4cb9d3d878fe3b 100644 --- a/core/src/main/java/hudson/model/Node.java +++ b/core/src/main/java/hudson/model/Node.java @@ -282,7 +282,7 @@ public abstract class Node extends AbstractModelObject implements Reconfigurable * Return the possibly empty tag cloud for the labels of this node. */ public TagCloud getLabelCloud() { - return new TagCloud(getAssignedLabels(),new WeightFunction() { + return new TagCloud<>(getAssignedLabels(), new WeightFunction() { public float weight(LabelAtom item) { return item.getTiedJobCount(); } @@ -313,7 +313,7 @@ public abstract class Node extends AbstractModelObject implements Reconfigurable * @return HashSet