On 06/12/13 08:38, Paul Sandoz wrote:
On Dec 5, 2013, at 9:29 PM, Doug Lea <d...@cs.oswego.edu> wrote:
On 12/05/2013 03:18 PM, Brent Christian wrote:
I'm curious about why this was done:

*** 4452,4462 ****
           public final boolean removeAll(Collection<?> c) {
!             Objects.requireNonNull(c);
               boolean modified = false;
--- 4495,4505 ----
           public final boolean removeAll(Collection<?> c) {
!             if (c == null) throw new NullPointerException();
               boolean modified = false;

It wasn't actually done. In part as a way to keep base jsr166
sources for CHM and most other existing classes as JDK7-compatible
as possible, the jsr166 versions always use the explicit form.
For this update, the Oracle-initiated changes that hadn't been in
jsr166 versions don't appear.


My preference is to keep CHM (and other classes) in 8 as close as possible to 
CHM in 166, otherwise it just makes it harder to apply fixes. So i deliberately 
took the 166 version of the null checks.

Agreed. It is too easy to miss changes and make mistakes otherwise.

-Chris.

I tend to take sources from 166, copy them into the JDK overwriting the 
existing sources, and then carefully go through the diffs (via the IDE) 
selectively applying. We already have one annoying diff related to @Deprecated 
which is in 166 but not in CHM and that is extremely easy to overlook.

Paul.

Reply via email to