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/Viewer.java
((ISelectionChangedListener) listeners[i]).selectionChanged(event);
	}
}
/**
 * Returns the primary control associated with this viewer.
 *
 * @return the SWT control which displays this viewer's content
 */
public abstract Control getControl();
/**
 * Returns the value of the property with the given name,
 * or <code>null</code> if the property is not found.
 * <p>
 * The default implementation performs a (linear) search of
 * an internal table. Overriding this method is generally not
 * required if the number of different keys is small. If a more
 * efficient representation of a viewer's properties is required,
 * override both <code>getData</code> and <code>setData</code>.
 * </p>
 *
 * @param key the property name
 * @return the property value, or <code>null</code> if
 *    the property is not found
 */
public Object getData(String key) {
	Assert.isNotNull(key);
	if (keys == null) 
		return null;
	for (int i=0; i < keys.length; i++) {
		if (keys[i].equals(key))