| Summary: | Empty Virtual Nebula Grid throws exception | ||
|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Chris Fairhall <chris> |
| Component: | RWT | Assignee: | Project Inbox <rap-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 3.1 | ||
| Target Milestone: | 3.1 M7 | ||
| Hardware: | PC | ||
| OS: | Windows 8 | ||
| Whiteboard: | |||
Fixed with change https://git.eclipse.org/r/#/c/71852/ |
When a Grid control has no items and is created as virtual, an exception is thrown Modified Grid Demo to reproduce: public class NebulaGridExamplePage implements IExamplePage { public void createControl(Composite parent) { parent.setLayout(ExampleUtil.createGridLayout(1, true, true, true)); ExampleUtil.createHeading(parent, "Profit and Loss Balance Sheet", 1); parent.setLayoutData(ExampleUtil.createFillData()); Grid grid = createGrid(parent); GridColumn column = new GridColumn(grid, SWT.LEFT); column.setWidth(100); } private Grid createGrid(Composite parent) { Grid grid = new Grid(parent, SWT.V_SCROLL | SWT.BORDER | SWT.VIRTUAL); GridData tableLayoutData = ExampleUtil.createFillData(); tableLayoutData.verticalIndent = 10; grid.setLayoutData(tableLayoutData); return grid; } } Exception: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:653) at java.util.ArrayList.get(ArrayList.java:429) at org.eclipse.nebula.widgets.grid.Grid.doRedraw(Grid.java:2492) at org.eclipse.nebula.widgets.grid.Grid.access$8(Grid.java:2489) at org.eclipse.nebula.widgets.grid.Grid$GridAdapter.doRedraw(Grid.java:3181) at org.eclipse.nebula.widgets.grid.internal.gridkit.GridLCA.doRedrawFake(GridLCA.java:163) at org.eclipse.swt.widgets.Display.executeNextRedraw(Display.java:1332) at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1204) at org.eclipse.swt.widgets.Display.safeReadAndDispatch(Display.java:1181) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1173) at org.eclipse.rap.rwt.application.AbstractEntryPoint.createUI(AbstractEntryPoint.java:69) at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:177) at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:290) at java.lang.Thread.run(Thread.java:745) at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:107)