Bug 146750 [DataBinding][CompositeTable] Crash when dragging scroll bar
Run CompositeTableTest Drag scroll bar down Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: -1, Size: 6 at java.util.LinkedList.entry(LinkedList.java:360) at java.util.LinkedList.get(LinkedList.java:303) at org.eclipse.jface.examples.databinding.compositetable.InternalCompositeTable.currentRow(InternalCompositeTable.java:1671) at org.eclipse.jface.examples.databinding.compositetable.InternalCompositeTable.fireRowDepartEvent(InternalCompositeTable.java:1511) at org.eclipse.jface.examples.databinding.compositetable.InternalCompositeTable.setTopRow(InternalCompositeTable.java:732) at org.eclipse.jface.examples.databinding.compositetable.InternalCompositeTable$2.widgetSelected(InternalCompositeTable.java:1239) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1074) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3158) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2838) at org.eclipse.jface.examples.databinding.compositetable.test.CompositeTableTest.main(CompositeTableTest.java:167)
examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/compositetable/InternalCompositeTable.java
*         with a widthHint of SWT.DEFAULT otherwise.
	 */
	private GridData getSliderGridData() {
		GridData gd = new org.eclipse.swt.layout.GridData();
		gd.grabExcessVerticalSpace = true;
		gd.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gd.verticalSpan = 1;
		if (!sliderVisible) {
			gd.widthHint = 0;
		}
		gd.horizontalAlignment = org.eclipse.swt.layout.GridData.CENTER;
		return gd;
	}
	private boolean sliderVisible = false;
	/**
	 * Sets if the slider is visible or not.
	 * 
	 * @param visible
	 *            true if the slider should be visible; false otherwise.
	 */
	public void setSliderVisible(boolean visible) {
		this.sliderVisible = visible;
		sliderHolder.setLayoutData(getSliderGridData());
		Display.getCurrent().addFilter(SWT.KeyDown, displayKeyDownFilter);
		Display.getCurrent().asyncExec(new Runnable() {
			public void run() {
				if (!InternalCompositeTable.this.isDisposed() &&
						!sliderHolder.isDisposed() &&
						!sliderHolder.getParent().isDisposed()) 
				{