diff options
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/com/vaadin/client/data/AbstractRemoteDataSource.java | 33 | ||||
-rw-r--r-- | client/src/com/vaadin/client/widget/grid/datasources/ListDataSource.java | 9 |
2 files changed, 22 insertions, 20 deletions
diff --git a/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java b/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java index 1de271c646..1ab9764337 100644 --- a/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java +++ b/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java @@ -166,7 +166,7 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { @Override public void updateRow() { int index = indexOf(row); - if (index >= 0) { + if (index >= 0 && dataChangeHandler != null) { dataChangeHandler.dataUpdated(index, 1); } } @@ -301,7 +301,7 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { .partitionWith(cached); handleMissingRows(missingCachePartition[0]); handleMissingRows(missingCachePartition[2]); - } else { + } else if (dataChangeHandler != null) { dataChangeHandler.dataAvailable(cached.getStart(), cached.length()); } @@ -400,7 +400,6 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { * a list of rows, starting from <code>firstRowIndex</code> */ protected void setRowData(int firstRowIndex, List<T> rowData) { - assert firstRowIndex + rowData.size() <= size(); Profiler.enter("AbstractRemoteDataSource.setRowData"); @@ -450,7 +449,10 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { cached = newUsefulData; } } - dataChangeHandler.dataAvailable(cached.getStart(), cached.length()); + if (dataChangeHandler != null) { + dataChangeHandler.dataAvailable(cached.getStart(), + cached.length()); + } updatePinnedRows(rowData); } @@ -517,8 +519,9 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { cached = cached.offsetBy(-removedRange.length()); } - assertDataChangeHandlerIsInjected(); - dataChangeHandler.dataRemoved(firstRowIndex, count); + if (dataChangeHandler != null) { + dataChangeHandler.dataRemoved(firstRowIndex, count); + } ensureCoverageCheck(); Profiler.leave("AbstractRemoteDataSource.removeRowData"); @@ -563,8 +566,9 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { keyToIndexMap.remove(getRowKey(row)); } } - assertDataChangeHandlerIsInjected(); - dataChangeHandler.dataAdded(firstRowIndex, count); + if (dataChangeHandler != null) { + dataChangeHandler.dataAdded(firstRowIndex, count); + } ensureCoverageCheck(); Profiler.leave("AbstractRemoteDataSource.insertRowData"); @@ -709,15 +713,8 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { size = newSize; dropFromCache(getCachedRange()); cached = Range.withLength(0, 0); - assertDataChangeHandlerIsInjected(); - dataChangeHandler.resetDataAndSize(newSize); - } - - private void assertDataChangeHandlerIsInjected() { - assert dataChangeHandler != null : "The dataChangeHandler was " - + "called before it was injected. Maybe you tried " - + "to manipulate the data in the DataSource's " - + "constructor instead of in overriding onAttach() " - + "and doing it there?"; + if (dataChangeHandler != null) { + dataChangeHandler.resetDataAndSize(newSize); + } } } diff --git a/client/src/com/vaadin/client/widget/grid/datasources/ListDataSource.java b/client/src/com/vaadin/client/widget/grid/datasources/ListDataSource.java index 47e072490e..46e972b3e8 100644 --- a/client/src/com/vaadin/client/widget/grid/datasources/ListDataSource.java +++ b/client/src/com/vaadin/client/widget/grid/datasources/ListDataSource.java @@ -110,7 +110,9 @@ public class ListDataSource<T> implements DataSource<T> { @Override public void updateRow() { - changeHandler.dataUpdated(ds.indexOf(getRow()), 1); + if (changeHandler != null) { + changeHandler.dataUpdated(ds.indexOf(getRow()), 1); + } } } @@ -389,7 +391,10 @@ public class ListDataSource<T> implements DataSource<T> { throw new IllegalStateException( "Trying to fetch rows outside of array"); } - changeHandler.dataAvailable(firstRowIndex, numberOfRows); + + if (changeHandler != null) { + changeHandler.dataAvailable(firstRowIndex, numberOfRows); + } } @Override |