Bug 15844 [Exception Handling] SelectionChange events and NPE
Build 20020508 Due to new global actions there are now more objects listening to selection changes send out by a JFace viewer. We now had the case that one of the listener generated a NPE. As a result all listeners registered after that one didn't receive the selection change event. StructuredViewers should be more fault tolorant to exceptions when informing listeners.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
}
	});
}
/**
 * Recursively collapses the subtree rooted at the given widget to the
 * given level.
 * <p>
 * </p>
 * Note that the default implementation of this method does not call
 * <code>setRedraw</code>.
 *
 * @param widget the widget
 * @param level non-negative level, or <code>ALL_LEVELS</code> to collapse
 *  all levels of the tree
 */
protected void internalCollapseToLevel(Widget widget, int level) {
	if (level == ALL_LEVELS || level > 0) {
		if (widget instanceof Item)
			setExpanded((Item) widget, false);
		if (level == ALL_LEVELS || level > 1) {
			Item[] children = getChildren(widget);
			if (children != null) {
				int nextLevel = (level == ALL_LEVELS ? ALL_LEVELS : level - 1);
				for (int i = 0; i < children.length; i++)
					internalCollapseToLevel(children[i], nextLevel);
			}
		}
	}
}
/**