On 04/29/2014 10:26 PM, Joe Darcy wrote:
Hello,

Now that Henry's fixes of raw and unchecked warnings in sun.awt has been pushed, please review this change to fix issues in java.awt:

    JDK-8039109 : Fix unchecked and raw lint warnings in java.awt
    http://cr.openjdk.java.net/~darcy/8039109.1/

Full patch below. A few points of interest in the patch:

* There is a change to the signature of a public method in java.awt.image.renderable.ParameterBlock.java (I believe that is the only such change in this patch; internally, a ccc request will be filed for this part of the fix.)

* In my estimation the changes in java.awt.GraphicsEnvironment.java are a better use of generics and reflection.

Thanks,

-Joe


Hi Joe,

in AWTKeyStroke, instead of

Class<AWTKeyStroke> clazz = 
(Class<AWTKeyStroke>)AppContext.getAppContext().get(AWTKeyStroke.class);

I should have the right type Class<? extends ...> (the class is a subclass of AWTKeyStroke) and
do a classcheck at runtime when the class is extracted instead of later

Class<? extends AWTKeyStroke> clazz = 
((Class<?>)AppContext.getAppContext().get(AWTKeyStroke.class)).asSubClass(AWTKeyStroke.class);

and I think the second @SuppressWarnings in getCachedStroke() is unnecessary.


in GraphicsEnvironment, the last line of your diff can be simplified,

ge = GraphicsEnvironment.class.cast(geCls.newInstance());

can be written

ge = (GraphicsEnvironment)geCls.newInstance();

which is more readable IMO but will also generate exactly the same bytecode as the current implementation.


in KeyboardFocusManager,

private Set<AWTKeyStroke>[] defaultFocusTraversalKeys = new Set[4];

should be

private Set<AWTKeyStroke>[] defaultFocusTraversalKeys = new Set<?>[4];

so @SuppressWarnings("rawtypes") is not needed.


in DragGestureEvent, the newEvents should be a List<? extends InputEvent>,
and @SuppressWarnings("rawtypes") should be a @SuppressWarnings("unchecked")

in RenderableImageOp,
getRenderableSources() should return a Vector of RenderableImage,

     public Vector<RenderableImage> getSources() {
        getRenderableSources();
     }
private Vector<RenderableImage> getRenderableSources() {
        Vector<RenderableImage sources = null;


all other modifications are OK for me.

regards,
Rémi

Reply via email to