JDK 8 code review request for 7140820 Add covariant overrides to Collections clone methods

Rémi Forax forax at univ-mlv.fr
Mon Jan 30 06:52:36 UTC 2012


On 01/30/2012 04:58 AM, Joe Darcy wrote:
> Hello,
>
> As an indirect outgrowth of warnings cleanup day, various categories 
> of warnings can be eliminated by in the use of Cloneable types by 
> overriding the
>
>     Object clone()
>
> method inherited from java.lang.Object with a covariant override such as
>
>     MyType clone()
>
> Please review my changes for
>
>     7140820 Add covariant overrides to Collections clone methods
>     http://cr.openjdk.java.net/~darcy/7140820.0/
>
> which add such covariant override clone methods to collections and a 
> few other classes in java.util.  Doing a full JDK build with these 
> changes, I've also made alterations to other classes to remove now 
> superfuous casts (casts which are a javac lint warning!) and some 
> unneeded @SuppressWarnings annotations.  I also cleaned up a few 
> rawtypes warnings while in editing files in java.util.
>
> (Note that the old specListeners method in EventRequestSpecList.java 
> was much buggy; it cast an ArrayList from runtime.specListeners to a 
> Vector.)
>
> Thanks,
>
> -Joe

WTF !

while it's maybe a binary compatible change, I haven't take a look to 
all modified classes to be sure
it's not a source compatible change.

People had created class that inherits from ArrayList and override clone,
while it's not a good practice, there is a *lot* of code from pre-1.5 
days that does exactly that,
this change will simply break all those codes.

Rémi





More information about the core-libs-dev mailing list