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
* This implementatation additionaly unmaps all the elements.
 */
public final void setInput(Object input) {
		
	try {
		
		unmapAllElements();
		super.setInput(input);
	} finally {
	}
}
/**
 * The <code>StructuredViewer</code> implementation of this method does the following.
 * <p>
 * If the new selection differs from the current
 * selection the hook <code>updateSelection</code> is called.
 * </p>
 * <p>
 * If <code>setSelection</code> is called from
 * within <code>preserveSelection</code>, the call to <code>updateSelection</code>
 * is delayed until the end of <code>preserveSelection</code>.
 * </p>
 * <p>
 * Subclasses do not typically override this method, but implement <code>setSelectionToWidget</code> instead.
 * </p>
 */
public void setSelection(ISelection selection, boolean reveal) {
	Control control = getControl();
	if (control == null || control.isDisposed()) {
		return;