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
Item[] items = getChildren(widget);
	for (int i = 0; i < items.length; i++) {
		Item item = items[i];
		Object data = item.getData();
		if (data != null) {
			
			
			boolean expanded = expandedElements.remove(data);
			if (expanded != getExpanded(item)) {
				if (expanded) {
					createChildren(item);
				}
				setExpanded(item, expanded);
			}
		}
		internalSetExpanded(expandedElements, item);
	}
}
/**
 * Return whether the tree node representing the given element
 * can be expanded.
 * <p>
 * The default implementation of this framework method calls 
 * <code>hasChildren</code> on this viewer's content provider.
 * It may be overridden if necessary.
 * </p>
 *
 * @param element the element
 * @return <code>true</code> if the tree node representing
 * the given element can be expanded, or <code>false</code> if not