RFR 8132964 Spliterator documentation on Priority(Blocking)Queue

Chris Hegarty chris.hegarty at oracle.com
Mon Nov 21 21:25:17 UTC 2016


> On 21 Nov 2016, at 20:57, Martin Buchholz <martinrb at google.com> wrote:
> 
> Looks good to me!

+1

-Chris.

> On Mon, Nov 21, 2016 at 12:52 PM, Paul Sandoz <paul.sandoz at 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>.
>> 
>> 



More information about the core-libs-dev mailing list