Skip to content
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
Showing 3 changed files with 24 additions and 6 deletions.
@@ -69,6 +69,9 @@
(<a href="">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="">issue 20415</a>)
<li class=rfe>
Show different “up” link for jobs in folders.
(<a href="">issue 20106</a>)
@@ -186,14 +186,12 @@ public List<TopLevelItem> getItems() {

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);
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());

@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");
// 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.