Skip to content
Permalink
Browse files

[FIXED JENKINS-20415] Lack of type safety in JENKINS-20143 fix someti…

…mes caused CCEs.
  • Loading branch information
jglick committed Nov 11, 2013
1 parent 2a35512 commit bdbac284723940e5b2dfd37dd194524305de29c2
@@ -69,6 +69,9 @@
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-20191">issue 20191</a>)
<li class=rfe>
Collect and report JVM crash dump files to assist trouble-shooting
<li class=bug>
<code>ClassCastException</code>s sometimes shown from views set to be recursive.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-20415">issue 20415</a>)
<li class=rfe>
Show different “up” link for jobs in folders.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-20106">issue 20106</a>)
@@ -186,14 +186,12 @@ public boolean hasJobFilterExtensions() {
}

private List<TopLevelItem> expand(Collection<TopLevelItem> items, List<TopLevelItem> allItems) {
for (Item item : items) {
for (TopLevelItem item : items) {
if (item instanceof ItemGroup) {
ItemGroup<TopLevelItem> ig = (ItemGroup<TopLevelItem>) item;
expand(ig.getItems(), allItems);
}
if (item instanceof TopLevelItem) {
allItems.add((TopLevelItem) item);
ItemGroup<? extends Item> ig = (ItemGroup<? extends Item>) item;
expand(Util.filter(ig.getItems(), TopLevelItem.class), allItems);
}
allItems.add(item);
}
return allItems;
}
@@ -40,6 +40,10 @@

import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import hudson.matrix.AxisList;
import hudson.matrix.MatrixProject;
import hudson.matrix.TextAxis;
import java.util.Collections;

public class ListViewTest {

@@ -95,4 +99,17 @@ private void checkLinkFromItemExistsAndIsValid(Item item, ItemGroup ig, Item top
webClient.getPage(top, link.getHrefAttribute());
}

@Bug(20415)
@Test public void nonTopLevelItemGroup() throws Exception {
MatrixProject mp = j.createMatrixProject();
mp.setAxes(new AxisList(new TextAxis("axis", "one", "two")));
assertEquals(2, mp.getItems().size());
ListView v = new ListView("v");
j.jenkins.addView(v);
v.setIncludeRegex(".*");
v.setRecurse(true);
// Note: did not manage to reproduce CCE until I changed expand to use ‘for (TopLevelItem item : items)’ rather than ‘for (Item item : items)’; perhaps a compiler-specific issue?
assertEquals(Collections.singletonList(mp), v.getItems());
}

}

0 comments on commit bdbac28

Please sign in to comment.
You can’t perform that action at this time.