jdk/src/java.base/share/classes/java/util/stream/LongPipeline.java
changeset 31644 dbca10d053fd
parent 29489 fe7624d92790
child 37721 1258d14cf2cc
--- 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);
     }