diff --git a/core/src/main/java/hudson/util/RunList.java b/core/src/main/java/hudson/util/RunList.java index c86b0b0da5510f13b4ac319bc19a9c73b139f482..b8d8acaf1028183c796bef4ff9766738c5acbc0c 100644 --- a/core/src/main/java/hudson/util/RunList.java +++ b/core/src/main/java/hudson/util/RunList.java @@ -32,19 +32,11 @@ import hudson.model.Job; import hudson.model.Node; import hudson.model.Result; import hudson.model.Run; +import hudson.model.TopLevelItem; import hudson.model.View; import hudson.util.Iterators.CountingPredicate; -import java.util.AbstractList; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.GregorianCalendar; -import java.util.Iterator; -import java.util.List; -import java.util.NoSuchElementException; +import java.util.*; /** * {@link List} of {@link Run}s, sorted in the descending date order. @@ -67,12 +59,15 @@ public class RunList extends AbstractList { } public RunList(View view) {// this is a type unsafe operation - List> jobs = new ArrayList>(); - for (Item item : view.getItems()) - for (Job j : item.getAllJobs()) - jobs.add(((Job)j).getBuilds()); + Set jobs = new HashSet(); + for (TopLevelItem item : view.getItems()) + jobs.addAll(item.getAllJobs()); - this.base = combine(jobs); + List> runs = new ArrayList>(); + for (Job job : jobs) { + runs.add(job.getBuilds()); + } + this.base = combine(runs); } public RunList(Collection jobs) {