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/StructuredViewer.java
}
	if (!inChange) {
		setSelectionToWidget(selection, reveal);
		ISelection sel = getSelection();
		updateSelection(sel);
		firePostSelectionChanged(new SelectionChangedEvent(this, sel));
	} else {
		restoreSelection = false;
		setSelectionToWidget(selection, reveal);
	}
}
/**
 * Parlays the given list of selected elements into selections
 * on this viewer's control.
 * <p>
 * Subclasses should override to set their selection based on the
 * given list of elements.
 * </p>
 * 
 * @param l list of selected elements (element type: <code>Object</code>)
 *   or <code>null</code> if the selection is to be cleared
 * @param reveal <code>true</code> if the selection is to be made
 *   visible, and <code>false</code> otherwise
 */
protected abstract void setSelectionToWidget(List l, boolean reveal);
/**
 * Converts the selection to a <code>List</code> and calls <code>setSelectionToWidget(List, boolean)</code>.
 * The selection is expected to be an <code>IStructuredSelection</code> of elements.
 * If not, the selection is cleared.
 * <p>