diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java index 0bdc435dea4..585bcc1b7f7 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java @@ -1862,13 +1862,11 @@ private void internalConditionalExpandToLevel(Widget widget, int level, } if (level == ALL_LEVELS || level > 1) { Item[] children = getChildren(widget); - if (children != null) { + if (children != null && shouldChildrenExpand.apply(widget).booleanValue()) { int newLevel = (level == ALL_LEVELS ? ALL_LEVELS : level - 1); for (Item element : children) { - if (shouldChildrenExpand.apply(widget).booleanValue()) { - internalConditionalExpandToLevel(element, newLevel, shouldChildrenExpand); - } + internalConditionalExpandToLevel(element, newLevel, shouldChildrenExpand); } } }