--- a/jdk/src/java.base/share/classes/java/util/stream/LongPipeline.java Mon Jul 13 17:44:34 2015 +0800
+++ b/jdk/src/java.base/share/classes/java/util/stream/LongPipeline.java Tue Jun 09 07:10:03 2015 +0100
@@ -154,10 +154,12 @@
}
@Override
- final void forEachWithCancel(Spliterator<Long> spliterator, Sink<Long> sink) {
+ final boolean forEachWithCancel(Spliterator<Long> spliterator, Sink<Long> sink) {
Spliterator.OfLong spl = adapt(spliterator);
LongConsumer adaptedSink = adapt(sink);
- do { } while (!sink.cancellationRequested() && spl.tryAdvance(adaptedSink));
+ boolean cancelled;
+ do { } while (!(cancelled = sink.cancellationRequested()) && spl.tryAdvance(adaptedSink));
+ return cancelled;
}
@Override
@@ -368,6 +370,16 @@
}
@Override
+ public final LongStream takeWhile(LongPredicate predicate) {
+ return WhileOps.makeTakeWhileLong(this, predicate);
+ }
+
+ @Override
+ public final LongStream dropWhile(LongPredicate predicate) {
+ return WhileOps.makeDropWhileLong(this, predicate);
+ }
+
+ @Override
public final LongStream sorted() {
return SortedOps.makeLong(this);
}