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
/* (non-Javadoc)
 * Method declared on StructuredViewer.
 */
public void internalRefresh(Object element) {
	
	if (element == null) {
		internalRefresh(getControl(), getRoot(), true);
		return;
	}
	Widget item = findItem(element);
	if (item != null) {
		
		internalRefresh(item, element, true);
	}
}
/**
 * Refreshes the tree starting at the given widget.
 *
 * @param widget the widget
 * @param element the element
 * @param doStruct <code>true</code> if structural changes are to be picked up,
 *   and <code>false</code> if only label provider changes are of interest
 */
private void internalRefresh(Widget widget, Object element, boolean doStruct) {
	
	if (widget instanceof Item) {
		if (doStruct) {
			updatePlus((Item)widget, element);
		}	
		updateItem(widget, element);