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/CheckboxTreeViewer.java
*
 * @see #setGrayedElements
 */
public Object[] getGrayedElements() {
	List result = new ArrayList();
	internalCollectGrayed(result, getControl());
	return result.toArray();
}
/* (non-Javadoc)
 * Method declared on StructuredViewer.
 */
protected void handleDoubleSelect(SelectionEvent event) {
	if (lastClickedItem != null) {
		TreeItem item = lastClickedItem;
		Object data = item.getData();
		if (data != null) {
			boolean state = item.getChecked();
			setChecked(data, !state);
			fireCheckStateChanged(new CheckStateChangedEvent(this, data, !state));
		}
		lastClickedItem = null;
	} else
		super.handleDoubleSelect(event);
}
/* (non-Javadoc)
 * Method declared on StructuredViewer.
 */
protected void handleSelect(SelectionEvent event) {
	lastClickedItem = null;
	if (event.detail == SWT.CHECK) {