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
* Method declared on Viewer.
 */
protected void hookControl(Control control) {
	super.hookControl(control);
	addTreeListener(control,new TreeListener() {
		public void treeExpanded(TreeEvent event) {
			handleTreeExpand(event);
		}
		public void treeCollapsed(TreeEvent event) {
			handleTreeCollapse(event);
		}
	});
}
/* (non-Javadoc)
 * Method declared on StructuredViewer.
 * Builds the initial tree and handles the automatic expand feature.
 */
protected void inputChanged(Object input, Object oldInput) {
	preservingSelection(new Runnable() {
		public void run() {
			Control tree = getControl();
		    boolean useRedraw = true; 
		    if (useRedraw)
		        tree.setRedraw(false);
			removeAll(tree);
			tree.setData(getRoot());
			createChildren(tree);
			internalExpandToLevel(tree, expandToLevel);
		    if (useRedraw)
		        tree.setRedraw(true);