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/CheckboxTableViewer.java
* </p>
 *
 * @return the array of grayed elements
 * @see #setGrayedElements
 */
public Object[] getGrayedElements() {
	TableItem[] children = getTable().getItems();
	List v = new ArrayList(children.length);
	for (int i = 0; i < children.length; i++) {
		TableItem item = children[i];
		if (item.getGrayed())
			v.add(item.getData());
	}
	return v.toArray();
}
/* (non-Javadoc)
 * Method declared on StructuredViewer.
 */
public void handleSelect(SelectionEvent event) {
	if (event.detail == SWT.CHECK) {
		super.handleSelect(event); 
		TableItem item = (TableItem) event.item;
		Object data = item.getData();
		if (data != null) {
			fireCheckStateChanged(new CheckStateChangedEvent(this, data, item.getChecked()));
		}
	} else
		super.handleSelect(event);
}
/* (non-Javadoc)