protected List<String> getInheritedItems(WikiPage page, Set<WikiPage> visitedPages) throws Exception { List<String> items = new ArrayList<String>(); addItemsFromPage(page, items); List<WikiPage> ancestors = WikiPageUtil.getAncestorsOf(page); for (WikiPage ancestor : ancestors) { if (!visitedPages.contains(ancestor)) { visitedPages.add(ancestor); addItemsFromPage(ancestor, items); } } return items; }