On Dec 6 2013, at 02:07 , Chris Hegarty <chris.hega...@oracle.com> wrote:
> 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. Agreed here as well. Mike > > -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. >>