Looks good to me! On Mon, Nov 21, 2016 at 12:52 PM, Paul Sandoz <paul.san...@oracle.com> wrote:
> Hi, > > Please review specification clarifications to PriorityQueue and > PriorityBlockingQueue for the spliterator. Ordinarily i would not specify > what spliterator characteristics are not reported, but in this case given > what is said about iterator I think it reasonable to say it about > spliterator (a number of developers have got caught out regarding order, or > lack thereof in this case, but i also suspect they never read the > specification!) > > Paul. > > diff -r eb147f1f232d src/java.base/share/classes/ > java/util/PriorityQueue.java > --- a/src/java.base/share/classes/java/util/PriorityQueue.java Mon Nov > 21 12:00:46 2016 -0800 > +++ b/src/java.base/share/classes/java/util/PriorityQueue.java Mon Nov > 21 12:30:33 2016 -0800 > @@ -54,7 +54,8 @@ > * <p>This class and its iterator implement all of the > * <em>optional</em> methods of the {@link Collection} and {@link > * Iterator} interfaces. The Iterator provided in method {@link > - * #iterator()} is <em>not</em> guaranteed to traverse the elements of > + * #iterator()} and the Spliterator provided in method {@link > #spliterator()} > + * are <em>not</em> guaranteed to traverse the elements of > * the priority queue in any particular order. If you need ordered > * traversal, consider using {@code Arrays.sort(pq.toArray())}. > * > @@ -799,7 +800,8 @@ > /** > * Creates a <em><a href="Spliterator.html# > binding">late-binding</a></em> > * and <em>fail-fast</em> {@link Spliterator} over the elements in > this > - * queue. > + * queue. The spliterator does not traverse elements in any > particular order > + * (the {@link Spliterator#ORDERED ORDERED} characteristic is not > reported). > * > * <p>The {@code Spliterator} reports {@link Spliterator#SIZED}, > * {@link Spliterator#SUBSIZED}, and {@link Spliterator#NONNULL}. > diff -r eb147f1f232d src/java.base/share/classes/java/util/concurrent/ > PriorityBlockingQueue.java > --- > a/src/java.base/share/classes/java/util/concurrent/PriorityBlockingQueue.java > Mon Nov 21 12:00:46 2016 -0800 > +++ > b/src/java.base/share/classes/java/util/concurrent/PriorityBlockingQueue.java > Mon Nov 21 12:30:33 2016 -0800 > @@ -65,7 +65,8 @@ > * <p>This class and its iterator implement all of the > * <em>optional</em> methods of the {@link Collection} and {@link > * Iterator} interfaces. The Iterator provided in method {@link > - * #iterator()} is <em>not</em> guaranteed to traverse the elements of > + * #iterator()} and the Spliterator provided in method {@link > #spliterator()} > + * are is <em>not</em> guaranteed to traverse the elements of > * the PriorityBlockingQueue in any particular order. If you need > * ordered traversal, consider using > * {@code Arrays.sort(pq.toArray())}. Also, method {@code drainTo} > @@ -994,6 +995,8 @@ > > /** > * Returns a {@link Spliterator} over the elements in this queue. > + * The spliterator does not traverse elements in any particular order > + * (the {@link Spliterator#ORDERED ORDERED} characteristic is not > reported). > * > * <p>The returned spliterator is > * <a href="package-summary.html#Weakly"><i>weakly > consistent</i></a>. > >