1

I want to read the texts of all columns of a table row. My code:

        // does not work: t.getFirstVisibleRowIndex()
        List<GridColumnElement> columns = t.getAllColumns();
        for (int col = 0; col < columns.size(); col++) {
            GridColumnElement c = columns.get(col);
            String value = t.getCell(rowNumber, col).getText();
            texts.put(c.getHeaderCell().getText(), value);
            texts.put("#" + (col + 1), value);
        }

// vaadin-grid-testbench-6.0.2.jar > GridElement.java

    public int getFirstVisibleRowIndex() {
        return ((Long) executeScript(
                "return arguments[0]._firstVisibleIndex+arguments[0]._vidxOffset",
                this)).intValue();
    }

The return value of executeScript() is null. This method is not null safe.

Stacktrace:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Long.intValue()" because the return value of "com.vaadin.flow.component.grid.testbench.GridElement.executeScript(String, Object[])" is null
at com.vaadin.flow.component.grid.testbench.GridElement.getFirstVisibleRowIndex(GridElement.java:73)
at com.vaadin.flow.component.grid.testbench.GridElement.isRowInView(GridElement.java:176)
at com.vaadin.flow.component.grid.testbench.GridElement.getCell(GridElement.java:116)
at com.vaadin.flow.component.grid.testbench.GridElement.getCell(GridElement.java:101)

Java 17 (Temurin)

Solution

If I change
String value = t.getCell(rowNumber, col).getText(); to
String value = t.getRow(rowNumber).getCell(c).getText(); it works. Is it a getCell(row, col) bug?

gastendonk
  • 23
  • 5

0 Answers0