Bug 567540 - StackOverflow in findColumnPosition/findRowPosition
Change-Id: Ie82de178541bfdf0a5192c7b1d5d735159d5de69
Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/LayerUtil.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/LayerUtil.java
index 20d6446..e870dff 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/LayerUtil.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/layer/LayerUtil.java
@@ -46,6 +46,10 @@
protected static final int findColumnPosition(
int xOffset, int columnOffset, ILayer layer, int x, int totalWidth, int columnCount) {
+ if (columnOffset == columnCount) {
+ return columnCount;
+ }
+
double size = (double) (totalWidth - xOffset) / (columnCount - columnOffset);
int columnPosition = columnOffset + (int) ((x - xOffset) / size);
@@ -76,6 +80,10 @@
protected static final int findRowPosition(
int yOffset, int rowOffset, ILayer layer, int y, int totalHeight, int rowCount) {
+ if (rowOffset == rowCount) {
+ return rowCount;
+ }
+
double size = (double) (totalHeight - yOffset) / (rowCount - rowOffset);
int rowPosition = rowOffset + (int) ((y - yOffset) / size);