Code Review 7107516: LinkedBlockingQueue/Deque.drainTo(Collection, int) returns 'maxElements' if its value is negative
david.holmes at oracle.com
Thu Nov 10 05:34:58 UTC 2011
On 10/11/2011 3:03 AM, Chris Hegarty wrote:
> On 09/11/2011 16:44, Mike Duigou wrote:
>> The change looks good.
>> The creation of node instances could use diamond. ie.
> Yes, this was my initial reaction too.
> Since Doug's CVS is also built with JDK6 I guess he cannot take
> advantage of new 7 features. I just tried to keep in sync rather than
> making a special exception for our downstream copy of this code. I guess
> going forward we may have to think about how we can use newer features
> in this area, but I think Doug will have this problem too.
Good point - I was going to make the same comment as Mike. I assume this
change was to remove a warning.
Changes look good to me.
>> Node<E> node = new Node<E>(e);
>> could be :
>> Node<E> node = new Node<>(e);
>> On Nov 9 2011, at 06:55 , Chris Hegarty wrote:
>>> According to the specification for BlockingQueue.drainTo(Collection
>>> c, int maxElements), this method should return "the number of
>>> elements transferred". However the implementation of this method for
>>> LinkedBlockingQueue and LinkedBlockingDeque when given a negative
>>> number returns the given negative number.
>>> Invoking drainTo(Collection, int) with a value of 0 or less should
>>> simply return 0.
>>> This change has been pulled from Doug Lea's CVS and I have already
>>> reviewed it. Sending to the list for further scrutiny/review.
More information about the core-libs-dev