7116404: Miscellaneous warnings (java.rmi.**, serialization, some core classes)

Stuart Marks stuart.marks at oracle.com
Tue Nov 29 23:01:18 UTC 2011

On 11/29/11 8:10 AM, Alan Bateman wrote:
> I don't have time on Thursday to get involved in the warnings fest [1]. However
> I would like to contribute something and to that end the following webrev
> proposes changes to eliminate the warnings from several classes including
> java.rmi.**, the serialization classes, and several core classes:
> http://cr.openjdk.java.net/~alanb/7116404/webrev/

Wow, you're getting a jump on us! Any idea how many warnings this cleared up? 
Looks like dozens.

> The changes are mostly trivial, and mostly to raw type usages. One tricky one
> ObjectInputStream.readEnum where I had to use a raw type (Maurizio and I
> chatted about this one and there doesn't seem to be a better workaround). There
> is one non-warnings change in java.rmi.server.LogStream where I replaced a
> usage of legacy Hashtable with a HashMap.

A couple comments on these:

* The ObjectInputStream.readEnum case does indeed look tricky and so use of 
@SuppressWarnings is probably called for. Is it possible to use this annotation 
in a smaller scope than the entire method? In Effective Java, Josh Bloch 
recommends putting @SuppressWarnings on a declaration, even creating a new 
local variable if necessary. (He also recommends adding a comment.) Perhaps 
it's possible do to this here; while a local declaration within a try-block 
seems redundant, but it might enable narrowing the scope of @SuppressWarnings 

* Similar comment on java/rmi/MarshalledObject.get(). Looks to me like the only 
unchecked warning in there is at (old) line 159, which is a declaration, so 
@SuppressWarnings could be placed there instead of on the entire method.



> -Alan.
> [1] http://mail.openjdk.java.net/pipermail/jdk8-dev/2011-November/000302.html

More information about the core-libs-dev mailing list