From 1102d5fb4eec9a712cd8f770dfa023e842abd830 Mon Sep 17 00:00:00 2001 From: Henrik Paul Date: Fri, 8 Aug 2014 09:55:22 +0300 Subject: Re-fixes "remove all rows" bug without breaking unit tests (#13334) This partly reverts a9fc5d5be Change-Id: I1d2f81e1d88c0057e6ba869358845ce4e9466a28 --- client/src/com/vaadin/client/data/AbstractRemoteDataSource.java | 4 +++- 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 implements DataSource { } 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); -- cgit v1.2.3