in src/main/java/org/apache/openejb/tools/release/util/References.java [155:178]
private static void findCircuits(final Set<Circuit> circuits, final Node node, final java.util.Stack<Node> stack) {
if (stack.contains(node)) {
final int fromIndex = stack.indexOf(node);
final int toIndex = stack.size();
final ArrayList<Node> circularity = new ArrayList<Node>(stack.subList(fromIndex, toIndex));
// add ending node to list so a full circuit is shown
circularity.add(node);
final Circuit circuit = new Circuit(circularity);
circuits.add(circuit);
return;
}
stack.push(node);
for (final Node reference : node.initialReferences) {
findCircuits(circuits, reference, stack);
}
stack.pop();
}