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
*/
	public static final int ALL_LEVELS= -1;
	/**
	 * List of registered tree listeners (element type: <code>TreeListener</code>).
	 */
	private ListenerList treeListeners = new ListenerList(1);
		
	/**
	 * The level to which the tree is automatically expanded each time
	 * the viewer's input is changed (that is, by <code>setInput</code>).
	 * A value of 0 means that auto-expand is off.
	 *
	 * @see #setAutoExpandLevel
	 */
	private int expandToLevel = 0;
/**
 * Creates an abstract tree viewer. The viewer has no input, no content provider, a
 * default label provider, no sorter, no filters, and has auto-expand turned off.
 */
protected AbstractTreeViewer() {
}
/**
 * Adds the given child elements to this viewer as children of the given parent element.
 * If this viewer does not have a sorter, the elements are added at the end of the 
 * parent's list of children in the order given; otherwise, the elements are inserted
 * at the appropriate positions.
 * <p>
 * This method should be called (by the content provider) when elements 
 * have been added to the model, in order to cause the viewer to accurately
 * reflect the model. This method only affects the viewer, not the model.