diff options
author | Jaxsun McCarthy Huggan | 2016-05-24 18:37:25 +0000 |
---|---|---|
committer | Jaxsun McCarthy Huggan | 2016-05-24 18:37:25 +0000 |
commit | fbb6db0dee8c94a741fddeeb288a7cd0577223d2 (patch) | |
tree | ecb0611391196b83ab863595541365531ded73eb | |
parent | 73e9dc0095c7f4a622234551d7d74152b187fa06 (diff) | |
download | org.eclipse.mylyn.builds-fbb6db0dee8c94a741fddeeb288a7cd0577223d2.tar.gz org.eclipse.mylyn.builds-fbb6db0dee8c94a741fddeeb288a7cd0577223d2.tar.xz org.eclipse.mylyn.builds-fbb6db0dee8c94a741fddeeb288a7cd0577223d2.zip |
492855: Hudson 3.3.3 can return duplicate jobs
Change-Id: I3d907884eebe5f36dfe109d0f3bdd0718ed13983
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=492855
Signed-off-by: Jaxsun McCarthy Huggan <jaxsun.mccarthy@tasktop.com>
-rw-r--r-- | org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java b/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java index bed93250..99772b73 100644 --- a/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java +++ b/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java @@ -21,9 +21,11 @@ import java.io.Reader; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; @@ -309,13 +311,17 @@ public class RestfulHudsonClient { List<HudsonModelJob> buildPlans = new ArrayList<HudsonModelJob>(); List<Object> jobsNodes = hudson.getJob(); + Set<String> urls = new HashSet<>(); for (Object jobNode : jobsNodes) { Node node = (Node) jobNode; HudsonModelJob job = unmarshal(node, HudsonModelJob.class); if (job.getColor() != null) { // job folders don't have a color String jobUrl = hudsonUrlUtil.assembleJobUrl(job.getName(), folderUrl); - job.setUrl(jobUrl); - buildPlans.add(job); + if (!urls.contains(jobUrl)) { + job.setUrl(jobUrl); + buildPlans.add(job); + urls.add(jobUrl); + } } else if (ids == null) { // retrieve jobs from sub-folder only if we need to fetch all jobs buildPlans.addAll(getJobsFromFolder(job.getUrl(), ids, monitor)); } |