Skip to content

Commit 21db16b

Browse files
committed
Merge pull request #3675 from akarnokd/TakeMinusNFix1x
1.x: fix take(-1) not completing
2 parents 5530fc4 + e8059c6 commit 21db16b

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/main/java/rx/internal/operators/OperatorTake.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public final class OperatorTake<T> implements Operator<T, T> {
3636
final int limit;
3737

3838
public OperatorTake(int limit) {
39+
if (limit < 0) {
40+
throw new IllegalArgumentException("limit >= 0 required but it was " + limit);
41+
}
3942
this.limit = limit;
4043
}
4144

src/test/java/rx/internal/operators/OperatorTakeTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,4 +438,21 @@ public void call(Integer v) {
438438
ts.assertNoErrors();
439439
ts.assertCompleted();
440440
}
441+
442+
@Test(expected = IllegalArgumentException.class)
443+
public void takeNegative() {
444+
Observable.range(1, 1000 * 1000 * 1000).take(-1);
445+
}
446+
447+
@Test(timeout = 1000)
448+
public void takeZero() {
449+
TestSubscriber<Integer> ts = TestSubscriber.create();
450+
451+
Observable.range(1, 1000 * 1000 * 1000).take(0).subscribe(ts);
452+
453+
ts.assertNoValues();
454+
ts.assertNoErrors();
455+
ts.assertCompleted();
456+
}
457+
441458
}

0 commit comments

Comments
 (0)