diff options
-rw-r--r-- | client/src/com/vaadin/client/data/AbstractRemoteDataSource.java | 4 | ||||
-rw-r--r-- | shared/src/com/vaadin/shared/ui/grid/Range.java | 6 |
2 files changed, 3 insertions, 7 deletions
diff --git a/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java b/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java index bec6e330bc..1ce68ced17 100644 --- a/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java +++ b/client/src/com/vaadin/client/data/AbstractRemoteDataSource.java @@ -381,7 +381,9 @@ public abstract class AbstractRemoteDataSource<T> implements DataSource<T> { } Range removedRange = Range.withLength(firstRowIndex, count); - if (removedRange.intersects(cached)) { + if (cached.isSubsetOf(removedRange)) { + cached = Range.withLength(0, 0); + } else if (removedRange.intersects(cached)) { Range[] partitions = cached.partitionWith(removedRange); Range remainsBefore = partitions[0]; Range transposedRemainsAfter = partitions[2].offsetBy(-removedRange diff --git a/shared/src/com/vaadin/shared/ui/grid/Range.java b/shared/src/com/vaadin/shared/ui/grid/Range.java index 4f7e37b9ad..2054845320 100644 --- a/shared/src/com/vaadin/shared/ui/grid/Range.java +++ b/shared/src/com/vaadin/shared/ui/grid/Range.java @@ -369,12 +369,6 @@ public final class Range implements Serializable { * if the two ranges aren't connected */ public Range combineWith(Range other) throws IllegalArgumentException { - if (other.isEmpty()) { - return this; - } else if (isEmpty()) { - return other; - } - if (getStart() > other.getEnd() || other.getStart() > getEnd()) { throw new IllegalArgumentException("There is a gap between " + this + " and " + other); |