Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaxsun McCarthy Huggan2016-05-24 18:37:25 +0000
committerJaxsun McCarthy Huggan2016-05-24 18:37:25 +0000
commitfbb6db0dee8c94a741fddeeb288a7cd0577223d2 (patch)
treeecb0611391196b83ab863595541365531ded73eb
parent73e9dc0095c7f4a622234551d7d74152b187fa06 (diff)
downloadorg.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.java10
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));
}

Back to the top