FileVisitResult (Path dir, IOException exc) { List<ChildInfo> childInfos = stack.pop(); List<ChildInfo> parentInfos = stack.peek(); // store children back ChildInfo parentInfo = ContainerUtil.getLastItem(parentInfos); ChildInfo[] children = childInfos.toArray(ChildInfo.EMPTY_ARRAY); ChildInfo newInfo = ((ChildInfoImpl)parentInfo).withChildren(children); parentInfos.set(parentInfos.size() - 1, newInfo); return FileVisitResult.CONTINUE; }