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
* Adds a listener for post selection in this viewer.
 * It is equivalent to selection changed if the selection
 * was triggered by the mouse but it has a delay if the selection
 * is triggered by the keyboard arrows.
 * Has no effect if an identical listener is already registered.
 *
 * @param listener a double-click listener
 */
public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
	postSelectionChangedListeners.add(listener);
}
/**
 * Adds support for dragging items out of this viewer via
 * a user drag-and-drop operation.
 *
 * @param operations a bitwise OR of the supported drag and drop operation
 *  types (<code>DROP_COPY</code>, <code>DROP_LINK</code>, and <code>DROP_MOVE</code>)
 * @param transferTypes the transfer types that are supported by the drag operation
 * @param listener the callback that will be invoked to set the drag
 *  data and to cleanup after the drag and drop operation finishes
 * @see org.eclipse.swt.dnd.DND
 */
public void addDragSupport(
	int operations, 
	Transfer[] transferTypes, 
	DragSourceListener listener) {
	Control myControl = getControl();
	final DragSource dragSource = new DragSource(myControl, operations);
	dragSource.setTransfer(transferTypes);
	dragSource.addDragListener(listener);