diff --git a/openide.nodes/src/org/openide/nodes/FilterNode.java b/openide.nodes/src/org/openide/nodes/FilterNode.java --- a/openide.nodes/src/org/openide/nodes/FilterNode.java +++ b/openide.nodes/src/org/openide/nodes/FilterNode.java @@ -1659,7 +1659,14 @@ } public Node findChild(String name) { - Node dontGC = original.getChildren().findChild(name); + Node dontGC = null; + while (true) { + Node oldOriginal = original; + dontGC = original.getChildren().findChild(name); + if (original == oldOriginal) { + break; + } + } return Children.super.findChild(name); }