Body and row headers not displaying for Big Data [message #1769560] |
Tue, 01 August 2017 15:46 |
Wallace Lake Messages: 5 Registered: August 2017 |
Junior Member |
|
|
Hi,
I ran into issues with the following code from Big Data example, while working on an empty Eclipse view plugin: (Note the value Integer.MAX_VALUE in the code)
Only the corner and the column headers are showing properly. The rest of the table is just empty in the widget background color.
public void createPartControl(Composite parent) {
parent.setLayout(new GridLayout());
DummyGridLayerStack layer = new DummyGridLayerStack(100, Integer.MAX_VALUE);
// these 2 lines shouldn't make a difference
DataLayer rowHeaderDataLayer = (DataLayer) layer.getRowHeaderDataLayer();
rowHeaderDataLayer.setColumnWidthByPosition(0, 80);
NatTable table = new NatTable(parent, layer);
GridDataFactory.fillDefaults().grab(true, true).applyTo(table);
}
I tried reducing the rowCount value to 1 000 000 000, but with same empty body and row headers.
When I replace the rowCount value with 1147483647 (replaced the first digit of int_max with 1), the table seems to display as expected in the beginning.
However, after i scroll down with the slider thumb, I get StackOverflowError with the following console message:
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.StackOverflowError
at org.eclipse.nebula.widgets.nattable.layer.DataLayer.getStartYOfRowPosition(DataLayer.java:473)
at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findRowPosition(LayerUtil.java:64)
at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findRowPosition(LayerUtil.java:73)
at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findRowPosition(LayerUtil.java:73)
...
or 2000000000:
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.StackOverflowError
at org.eclipse.nebula.widgets.nattable.layer.SizeConfig.isAllPositionsSameSize(SizeConfig.java:472)
at org.eclipse.nebula.widgets.nattable.layer.SizeConfig.getAggregateSize(SizeConfig.java:236)
at org.eclipse.nebula.widgets.nattable.layer.DataLayer.getStartYOfRowPosition(DataLayer.java:473)
at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findRowPosition(LayerUtil.java:64)
at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findRowPosition(LayerUtil.java:73)
at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findRowPosition(LayerUtil.java:73)
...
I found a (maybe) related topic here, but it is stated as fixed.
If I further reduce the rowCount to 100 000 000 (or below), the table is working as expected again.
So my question is, is this a bug or a known limitation?
We had high hopes when we read the FAQ:
Quote:How much data can you put behind it?
As much as you want, pretty much. The only practical limit right now is that the number of columns, rows, width and height of your table must be able to be represented as 32-bit integers. We test against virtual data sets of 1 million columns by 1 million rows.
We are hoping we can create a pull request or use a modified version that can support row limit of 64-bit integer.
Thanks
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02542 seconds