JDK 8 Warnings Cleanup Day -- Dec. 1st, 2011

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Wed Nov 30 08:45:31 PST 2011


On 30/11/11 16:33, Martijn Verburg wrote:
> Hi John,
>
>> Martijn,
>>
>> It is great to see this sort of enthusiasm.
>>
>> As a reviewer for similar efforts in the past, I note that it can help to
>> group changes by the amount of analysis needed for each change. For example,
>> changes to remove redundant casts are pretty easy to do, and to review, but
>> other changes might need more analysis, especially anything involving method
>> signatures.
> Thanks! We'll do just that - any other suggestions on how people want
> to receive patches/effort/results please let us know.  We really don't
> want to add unnecessary burden.
Martijn,
as many of the warnings out there are indeed related to generics, we 
need to make sure that, when fixing such warnings, we don't end up 
changing signatures of public API (i.e. by adding/removing 
generics/wildcards), as these changes are potentially harmful for JDK 
consumers. I think it would be best to focus on low-hanging fruits first 
- these are:

*) changes that involve the body of a method (i.e. changes to the 
declared type of a local variable)

*) Adding @SuppressWarnings is always safe (retention policy of this 
annotation is sourcefile, so that classfile won't be affected)

*) changing initializer (even of public fields) is always safe - as the 
initializer is part of the constructor - therefore it's part of the 
implementation

I think those rules are quite useful in distinguishing safe changes from 
potentially harmful changes. I would also refrain from relying on 
modifiers to establish whether a method is public or private API - 
remember that a package-private method can be overriden in a subclass 
and given a public modifier!

Maurizio
> Cheers,
> Martijn



More information about the jdk8-dev mailing list