Bug 319600 [Viewers] CheckboxTableViewer.getCheckedElements based on virtual table returns null data objects
Build Identifier: 20100617-1415 If programmatically select all rows in CheckboxTableViewer created upon virtual table using setAllChecked, then getCheckedElements method returns null data objects, probably, for non-displayed rows. In spite of the fact, that table is virtual, it is expected that getCheckedElements returns concrete non-null data objects associated with rows. Reproducible: Always Steps to Reproduce: 1. Launch attached snippet. 2. Click "Select/Deselect All" to select all rows, then click "Null Rows" and message with number of rows with null data objects will be displayed.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTableViewer.java
}
    
    /**
     * Sets the {@link ICheckStateProvider} for this {@link CheckboxTreeViewer}.
     * The check state provider will supply the logic for deciding whether the
     * check box associated with each item should be checked, grayed or 
     * unchecked. 
     * @param checkStateProvider	The provider.
     * @since 3.5
     */
    public void setCheckStateProvider(ICheckStateProvider checkStateProvider) {
    	this.checkStateProvider = checkStateProvider;
    	refresh();
    }
    
    /*
     * Extends this method to update check box states.
     */
    protected void doUpdateItem(Widget widget, Object element, boolean fullMap) {
    	super.doUpdateItem(widget, element, fullMap);
    	if(!widget.isDisposed()) {
    		if(checkStateProvider != null) {
				setChecked(element, checkStateProvider.isChecked(element));
				setGrayed(element, checkStateProvider.isGrayed(element));
			}
    	}
	}
	/**
     * Creates a new table control with one column.
     *