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
}
		
		int width = controlHolder.getSize().x;
		
		if (myHeader != null) {
			myHeader.setBounds(0, 0, width, headerHeight);
		}
		
		if (numRowsInCollection < 1) {
			return;
		}
		
		int rowHeight = getRowHeight(clientAreaHeight);
		
		
		
		if (userScrollDirection == ScrollEvent.FORWARD || userScrollDirection == ScrollEvent.NONE) {
			for (Iterator rowsIter = rows.iterator(); rowsIter.hasNext();) {
				TableRow row = (TableRow) rowsIter.next();
				Control rowControl = row.getRowControl();
				rowControl.setBounds(0, topPosition, width, rowHeight);
				layoutChild(rowControl, false);
				topPosition += rowHeight;
			}
		} else {
			ListIterator rowsIter = rows.listIterator();
			while (rowsIter.hasNext()) {
				rowsIter.next();
			}
			topPosition += rowHeight * (rows.size() - 1);