From: Teemu Suo-Anttila Date: Tue, 11 Aug 2015 11:55:27 +0000 (+0300) Subject: Fix Grid client-side NPE finding uneditable column editor (#18589) X-Git-Tag: 7.6.0.alpha4~34 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e7e6fd78c1a1506947e8301c1235c622cf424826;p=vaadin-framework.git Fix Grid client-side NPE finding uneditable column editor (#18589) Change-Id: I6f3fc25785bc6036795a791d6582c3d9194b505c --- diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java index 8db6e9a55a..ce3db0970a 100644 --- a/client/src/com/vaadin/client/widgets/Grid.java +++ b/client/src/com/vaadin/client/widgets/Grid.java @@ -6745,11 +6745,21 @@ public class Grid extends ResizeComposite implements if (args.getIndicesLength() == 0) { return editor.editorOverlay; - } else if (args.getIndicesLength() == 1 - && args.getIndex(0) < columns.size()) { - escalator - .scrollToColumn(args.getIndex(0), ScrollDestination.ANY, 0); - return editor.getWidget(columns.get(args.getIndex(0))).getElement(); + } else if (args.getIndicesLength() == 1) { + int index = args.getIndex(0); + if (index >= columns.size()) { + return null; + } + + escalator.scrollToColumn(index, ScrollDestination.ANY, 0); + Widget widget = editor.getWidget(columns.get(index)); + + if (widget != null) { + return widget.getElement(); + } + + // No widget for the column. + return null; } return null; diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridEditorTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridEditorTest.java index b77cc41946..e772ed44e9 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridEditorTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridEditorTest.java @@ -365,6 +365,7 @@ public class GridEditorTest extends GridBasicFeaturesTest { .findElements(By.xpath("./div")).get(3) .getAttribute("class")); + assertNoErrorNotifications(); } private WebElement getSaveButton() {