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
*/
public void collapseAll() {
	collapseToLevel(getRoot(), ALL_LEVELS);
}
/**
 * Collapses the subtree rooted at the given element to the given level.
 *
 * @param element the element
 * @param level non-negative level, or <code>ALL_LEVELS</code> to collapse
 *  all levels of the tree
 */
public void collapseToLevel(Object element, int level) {
	Widget w = findItem(element);
	if (w != null)
		internalCollapseToLevel(w, level);
}
/**
 * Creates all children for the given widget.
 * <p>
 * The default implementation of this framework method assumes 
 * that <code>widget.getData()</code> returns the element corresponding
 * to the node. Note: the node is not visually expanded! You may have to 
 * call <code>parent.setExpanded(true)</code>.
 * </p>
 *
 * @param widget the widget
 */
protected void createChildren(Widget widget) {
	Item[] tis = getChildren(widget);
	if (tis != null && tis.length > 0) {