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
}
	setSelection(newSelection);
	if (reveal && newSelection.size() > 0) {
		showItem((Item) newSelection.get(0));
	}
}
/**
 * Shows the given item.
 *
 * @param item the item
 */
protected abstract void showItem(Item item);
/**
 * Updates the tree items to correspond to the child elements of the given parent element.
 * If null is passed for the children, this method obtains them (only if needed).
 * This method avoids calling <code>updatePlus</code> or <code>updateItem</code>, 
 * leaving this to be done by the calling method (i.e. internalRefresh).
 *
 * @param widget the widget
 * @param parent the parent element
 * @param elementChildren the child elements, or null
 */
protected void updateChildren(Widget widget, Object parent, Object[] elementChildren) {
	
	if (widget instanceof Item) {
		Item ti= (Item) widget;
		if (!getExpanded(ti)) {
			
			
			boolean needDummy = isExpandable(parent);