<AWT Dev> JDK 9 RFR of JDK-8039109 : Fix unchecked and raw lint warnings in java.awt

Joe Darcy joe.darcy at oracle.com
Tue Apr 29 20:26:13 UTC 2014


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

--- old/src/share/classes/java/awt/AWTKeyStroke.java    2014-04-29 
13:01:10.000000000 -0700
+++ new/src/share/classes/java/awt/AWTKeyStroke.java    2014-04-29 
13:01:10.000000000 -0700
@@ -86,7 +86,8 @@
       * Must be called under locked AWTKeyStro
       */
      private static Class<AWTKeyStroke> getAWTKeyStrokeClass() {
-        Class<AWTKeyStroke> clazz = 
(Class)AppContext.getAppContext().get(AWTKeyStroke.class);
+        @SuppressWarnings("unchecked")
+        Class<AWTKeyStroke> clazz = 
(Class<AWTKeyStroke>)AppContext.getAppContext().get(AWTKeyStroke.class);
          if (clazz == null) {
              clazz = AWTKeyStroke.class;
              AppContext.getAppContext().put(AWTKeyStroke.class, 
AWTKeyStroke.class);
@@ -182,6 +183,7 @@
              throw new IllegalArgumentException("subclass cannot be null");
          }
          synchronized (AWTKeyStroke.class) {
+            @SuppressWarnings("unchecked")
              Class<AWTKeyStroke> keyStrokeClass = 
(Class)AppContext.getAppContext().get(AWTKeyStroke.class);
              if (keyStrokeClass != null && 
keyStrokeClass.equals(subclass)){
                  // Already registered
@@ -192,7 +194,7 @@
              throw new ClassCastException("subclass is not derived from 
AWTKeyStroke");
          }

-        Constructor ctor = getCtor(subclass);
+        Constructor<?> ctor = getCtor(subclass);

          String couldNotInstantiate = "subclass could not be instantiated";

@@ -227,12 +229,12 @@
         threat as accessible flag is set only for this Constructor object,
         not for Class constructor.
       */
-    private static Constructor getCtor(final Class clazz)
+    private static Constructor<?> getCtor(final Class<?> clazz)
      {
-        Constructor ctor = AccessController.doPrivileged(new 
PrivilegedAction<Constructor>() {
-            public Constructor run() {
+        Constructor<?> ctor = AccessController.doPrivileged(new 
PrivilegedAction<Constructor<?>>() {
+            public Constructor<?> run() {
                  try {
-                    Constructor ctor = 
clazz.getDeclaredConstructor((Class[]) null);
+                    Constructor<?> ctor = 
clazz.getDeclaredConstructor((Class<?>[]) null);
                      if (ctor != null) {
                          ctor.setAccessible(true);
                      }
@@ -249,7 +251,9 @@
      private static synchronized AWTKeyStroke getCachedStroke
          (char keyChar, int keyCode, int modifiers, boolean onKeyRelease)
      {
+        @SuppressWarnings("unchecked")
          Map<AWTKeyStroke, AWTKeyStroke> cache = 
(Map)AppContext.getAppContext().get(APP_CONTEXT_CACHE_KEY);
+        @SuppressWarnings("unchecked")
          AWTKeyStroke cacheKey = 
(AWTKeyStroke)AppContext.getAppContext().get(APP_CONTEXT_KEYSTROKE_KEY);

          if (cache == null) {
--- old/src/share/classes/java/awt/CardLayout.java    2014-04-29 
13:01:11.000000000 -0700
+++ new/src/share/classes/java/awt/CardLayout.java    2014-04-29 
13:01:11.000000000 -0700
@@ -560,6 +560,7 @@
      /**
       * Reads serializable fields from stream.
       */
+    @SuppressWarnings("unchecked")
      private void readObject(ObjectInputStream s)
          throws ClassNotFoundException, IOException
      {
--- old/src/share/classes/java/awt/Component.java    2014-04-29 
13:01:11.000000000 -0700
+++ new/src/share/classes/java/awt/Component.java    2014-04-29 
13:01:11.000000000 -0700
@@ -6184,7 +6184,7 @@
      /**
       * Parameter types of coalesceEvents(AWTEvent,AWTEVent).
       */
-    private static final Class[] coalesceEventsParams = {
+    private static final Class<?>[] coalesceEventsParams = {
          AWTEvent.class, AWTEvent.class
      };

--- old/src/share/classes/java/awt/GraphicsEnvironment.java 2014-04-29 
13:01:12.000000000 -0700
+++ new/src/share/classes/java/awt/GraphicsEnvironment.java 2014-04-29 
13:01:12.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -95,18 +95,18 @@
          String nm = AccessController.doPrivileged(new 
GetPropertyAction("java.awt.graphicsenv", null));
          try {
  //          long t0 = System.currentTimeMillis();
-            Class<GraphicsEnvironment> geCls;
+            Class<?> geCls;
              try {
                  // First we try if the bootclassloader finds the requested
                  // class. This way we can avoid to run in a privileged 
block.
-                geCls = (Class<GraphicsEnvironment>)Class.forName(nm);
+                geCls = Class.forName(nm);
              } catch (ClassNotFoundException ex) {
                  // If the bootclassloader fails, we try again with the
                  // application classloader.
                  ClassLoader cl = ClassLoader.getSystemClassLoader();
-                geCls = (Class<GraphicsEnvironment>)Class.forName(nm, 
true, cl);
+                geCls = Class.forName(nm, true, cl);
              }
-            ge = geCls.newInstance();
+            ge = GraphicsEnvironment.class.cast(geCls.newInstance());
  //          long t1 = System.currentTimeMillis();
  //          System.out.println("GE creation took " + (t1-t0)+ "ms.");
              if (isHeadless()) {
--- old/src/share/classes/java/awt/KeyboardFocusManager.java 2014-04-29 
13:01:13.000000000 -0700
+++ new/src/share/classes/java/awt/KeyboardFocusManager.java 2014-04-29 
13:01:12.000000000 -0700
@@ -348,6 +348,7 @@
       * Component of those Windows that has no such array of its own 
explicitly
       * set.
       */
+    @SuppressWarnings({"unchecked", "rawtypes"})
      private Set<AWTKeyStroke>[] defaultFocusTraversalKeys = new Set[4];

      /**
@@ -422,7 +423,7 @@
targetSet.add(AWTKeyStroke.getAWTKeyStroke(tokens.nextToken()));
          }
          return (targetSet.isEmpty())
-            ? Collections.EMPTY_SET
+            ? Collections.emptySet()
              : Collections.unmodifiableSet(targetSet);
      }

@@ -436,7 +437,7 @@
work_set.add(defaultFocusTraversalKeyStrokes[i][j]);
              }
              defaultFocusTraversalKeys[i] = (work_set.isEmpty())
-                ? Collections.EMPTY_SET
+                ? Collections.emptySet()
                  : Collections.unmodifiableSet(work_set);
          }
          initPeer();
@@ -1750,11 +1751,12 @@
       * @see #addKeyEventDispatcher
       * @see #removeKeyEventDispatcher
       */
+    @SuppressWarnings("unchecked") // Cast of result of clone
      protected synchronized java.util.List<KeyEventDispatcher>
          getKeyEventDispatchers()
      {
          return (keyEventDispatchers != null)
-            ? (java.util.List)keyEventDispatchers.clone()
+            ? 
(java.util.List<KeyEventDispatcher>)keyEventDispatchers.clone()
              : null;
      }

@@ -1841,11 +1843,12 @@
       * @see #addKeyEventPostProcessor
       * @see #removeKeyEventPostProcessor
       */
+    @SuppressWarnings("unchecked") // Cast of result of clone
      protected java.util.List<KeyEventPostProcessor>
          getKeyEventPostProcessors()
      {
          return (keyEventPostProcessors != null)
-            ? (java.util.List)keyEventPostProcessors.clone()
+            ? 
(java.util.List<KeyEventPostProcessor>)keyEventPostProcessors.clone()
              : null;
      }

@@ -1907,8 +1910,7 @@
       * javax.swing.JComponent.runInputVerifier() using reflection.
       */
      static synchronized Component getMostRecentFocusOwner(Window window) {
-        WeakReference<Component> weakValue =
-            (WeakReference)mostRecentFocusOwners.get(window);
+        WeakReference<Component> weakValue = 
mostRecentFocusOwners.get(window);
          return weakValue == null ? null : weakValue.get();
      }

--- old/src/share/classes/java/awt/SystemTray.java    2014-04-29 
13:01:13.000000000 -0700
+++ new/src/share/classes/java/awt/SystemTray.java    2014-04-29 
13:01:13.000000000 -0700
@@ -259,7 +259,9 @@
          Vector<TrayIcon> icons = null;
          synchronized (this) {
              oldArray = systemTray.getTrayIcons();
-            icons = 
(Vector<TrayIcon>)AppContext.getAppContext().get(TrayIcon.class);
+            @SuppressWarnings("unchecked")
+            Vector<TrayIcon> tmp = 
(Vector<TrayIcon>)AppContext.getAppContext().get(TrayIcon.class);
+            icons = tmp;
              if (icons == null) {
                  icons = new Vector<TrayIcon>(3);
                  AppContext.getAppContext().put(TrayIcon.class, icons);
@@ -304,6 +306,7 @@
          TrayIcon[] oldArray = null, newArray = null;
          synchronized (this) {
              oldArray = systemTray.getTrayIcons();
+            @SuppressWarnings("unchecked")
              Vector<TrayIcon> icons = 
(Vector<TrayIcon>)AppContext.getAppContext().get(TrayIcon.class);
              // TrayIcon with no peer is not contained in the array.
              if (icons == null || !icons.remove(trayIcon)) {
@@ -335,6 +338,7 @@
       * @see TrayIcon
       */
      public TrayIcon[] getTrayIcons() {
+        @SuppressWarnings("unchecked")
          Vector<TrayIcon> icons = 
(Vector<TrayIcon>)AppContext.getAppContext().get(TrayIcon.class);
          if (icons != null) {
              return icons.toArray(new TrayIcon[icons.size()]);
--- 
old/src/share/classes/java/awt/datatransfer/MimeTypeParameterList.java 
2014-04-29 13:01:14.000000000 -0700
+++ 
new/src/share/classes/java/awt/datatransfer/MimeTypeParameterList.java 
2014-04-29 13:01:14.000000000 -0700
@@ -296,14 +296,14 @@
      /**
       * @return a clone of this object
       */
-
+    @SuppressWarnings("unchecked") // Cast from clone
       public Object clone() {
           MimeTypeParameterList newObj = null;
           try {
               newObj = (MimeTypeParameterList)super.clone();
           } catch (CloneNotSupportedException cannotHappen) {
           }
-         newObj.parameters = (Hashtable)parameters.clone();
+         newObj.parameters = (Hashtable<String, String>)parameters.clone();
           return newObj;
       }

--- old/src/share/classes/java/awt/dnd/DragGestureEvent.java 2014-04-29 
13:01:14.000000000 -0700
+++ new/src/share/classes/java/awt/dnd/DragGestureEvent.java 2014-04-29 
13:01:14.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -357,6 +357,7 @@
          action = newAction;

          // Pre-1.4 support. 'events' was previously non-transient
+        @SuppressWarnings("rawtypes")
          List newEvents;
          try {
              newEvents = (List)f.get("events", null);
--- old/src/share/classes/java/awt/geom/Area.java    2014-04-29 
13:01:15.000000000 -0700
+++ new/src/share/classes/java/awt/geom/Area.java    2014-04-29 
13:01:15.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -97,9 +97,9 @@
   * @since 1.2
   */
  public class Area implements Shape, Cloneable {
-    private static Vector EmptyCurves = new Vector();
+    private static Vector<Curve> EmptyCurves = new Vector<>();

-    private Vector curves;
+    private Vector<Curve> curves;

      /**
       * Default constructor which creates an empty area.
@@ -127,8 +127,8 @@
          }
      }

-    private static Vector pathToCurves(PathIterator pi) {
-        Vector curves = new Vector();
+    private static Vector<Curve> pathToCurves(PathIterator pi) {
+        Vector<Curve> curves = new Vector<>();
          int windingRule = pi.getWindingRule();
          // coords array is big enough for holding:
          //     coordinates returned from currentSegment (6)
@@ -334,7 +334,7 @@
       * @since 1.2
       */
      public void reset() {
-        curves = new Vector();
+        curves = new Vector<>();
          invalidateBounds();
      }

@@ -357,9 +357,9 @@
       * @since 1.2
       */
      public boolean isPolygonal() {
-        Enumeration enum_ = curves.elements();
+        Enumeration<Curve> enum_ = curves.elements();
          while (enum_.hasMoreElements()) {
-            if (((Curve) enum_.nextElement()).getOrder() > 1) {
+            if (enum_.nextElement().getOrder() > 1) {
                  return false;
              }
          }
@@ -381,8 +381,8 @@
          if (size > 3) {
              return false;
          }
-        Curve c1 = (Curve) curves.get(1);
-        Curve c2 = (Curve) curves.get(2);
+        Curve c1 = curves.get(1);
+        Curve c2 = curves.get(2);
          if (c1.getOrder() != 1 || c2.getOrder() != 1) {
              return false;
          }
@@ -411,10 +411,10 @@
          if (curves.size() < 3) {
              return true;
          }
-        Enumeration enum_ = curves.elements();
+        Enumeration<Curve> enum_ = curves.elements();
          enum_.nextElement(); // First Order0 "moveto"
          while (enum_.hasMoreElements()) {
-            if (((Curve) enum_.nextElement()).getOrder() == 0) {
+            if (enum_.nextElement().getOrder() == 0) {
                  return false;
              }
          }
@@ -431,11 +431,11 @@
          }
          Rectangle2D r = new Rectangle2D.Double();
          if (curves.size() > 0) {
-            Curve c = (Curve) curves.get(0);
+            Curve c = curves.get(0);
              // First point is always an order 0 curve (moveto)
              r.setRect(c.getX0(), c.getY0(), 0, 0);
              for (int i = 1; i < curves.size(); i++) {
-                ((Curve) curves.get(i)).enlarge(r);
+                curves.get(i).enlarge(r);
              }
          }
          return (cachedBounds = r);
@@ -507,7 +507,7 @@
          if (other == null) {
              return false;
          }
-        Vector c = new AreaOp.XorOp().calculate(this.curves, other.curves);
+        Vector<Curve> c = new AreaOp.XorOp().calculate(this.curves, 
other.curves);
          return c.isEmpty();
      }

@@ -555,10 +555,10 @@
          if (!getCachedBounds().contains(x, y)) {
              return false;
          }
-        Enumeration enum_ = curves.elements();
+        Enumeration<Curve> enum_ = curves.elements();
          int crossings = 0;
          while (enum_.hasMoreElements()) {
-            Curve c = (Curve) enum_.nextElement();
+            Curve c = enum_.nextElement();
              crossings += c.crossingsFor(x, y);
          }
          return ((crossings & 1) == 1);
@@ -658,16 +658,16 @@

  class AreaIterator implements PathIterator {
      private AffineTransform transform;
-    private Vector curves;
+    private Vector<Curve> curves;
      private int index;
      private Curve prevcurve;
      private Curve thiscurve;

-    public AreaIterator(Vector curves, AffineTransform at) {
+    public AreaIterator(Vector<Curve> curves, AffineTransform at) {
          this.curves = curves;
          this.transform = at;
          if (curves.size() >= 1) {
-            thiscurve = (Curve) curves.get(0);
+            thiscurve = curves.get(0);
          }
      }

@@ -689,7 +689,7 @@
              prevcurve = thiscurve;
              index++;
              if (index < curves.size()) {
-                thiscurve = (Curve) curves.get(index);
+                thiscurve = curves.get(index);
                  if (thiscurve.getOrder() != 0 &&
                      prevcurve.getX1() == thiscurve.getX0() &&
                      prevcurve.getY1() == thiscurve.getY0())
--- old/src/share/classes/java/awt/image/BufferedImage.java 2014-04-29 
13:01:15.000000000 -0700
+++ new/src/share/classes/java/awt/image/BufferedImage.java 2014-04-29 
13:01:15.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -76,7 +76,7 @@
      ColorModel colorModel;
      WritableRaster raster;
      OffScreenImageSource osis;
-    Hashtable properties;
+    Hashtable<?, ?> properties;

      boolean    isAlphaPremultiplied;// If true, alpha has been 
premultiplied in
      // color channels
@@ -1106,7 +1106,7 @@
      public ImageProducer getSource() {
          if (osis == null) {
              if (properties == null) {
-                properties = new Hashtable();
+                properties = new Hashtable<>();
              }
              osis = new OffScreenImageSource(this, properties);
          }
--- old/src/share/classes/java/awt/image/CropImageFilter.java 2014-04-29 
13:01:16.000000000 -0700
+++ new/src/share/classes/java/awt/image/CropImageFilter.java 2014-04-29 
13:01:16.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1995, 2004, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -79,6 +79,7 @@
       * with the filtering operation.
       */
      public void setProperties(Hashtable<?,?> props) {
+        @SuppressWarnings("unchecked")
          Hashtable<Object,Object> p = 
(Hashtable<Object,Object>)props.clone();
          p.put("croprect", new Rectangle(cropX, cropY, cropW, cropH));
          super.setProperties(p);
--- old/src/share/classes/java/awt/image/FilteredImageSource.java 
2014-04-29 13:01:16.000000000 -0700
+++ new/src/share/classes/java/awt/image/FilteredImageSource.java 
2014-04-29 13:01:16.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1995, 2003, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -68,7 +68,7 @@
          filter = imgf;
      }

-    private Hashtable proxies;
+    private Hashtable<ImageConsumer, ImageFilter> proxies;

      /**
       * Adds the specified <code>ImageConsumer</code>
@@ -94,7 +94,7 @@
       */
      public synchronized void addConsumer(ImageConsumer ic) {
          if (proxies == null) {
-            proxies = new Hashtable();
+            proxies = new Hashtable<>();
          }
          if (!proxies.containsKey(ic)) {
              ImageFilter imgf = filter.getFilterInstance(ic);
@@ -137,7 +137,7 @@
       */
      public synchronized void removeConsumer(ImageConsumer ic) {
          if (proxies != null) {
-            ImageFilter imgf = (ImageFilter) proxies.get(ic);
+            ImageFilter imgf =  proxies.get(ic);
              if (imgf != null) {
                  src.removeConsumer(imgf);
                  proxies.remove(ic);
@@ -173,9 +173,9 @@
       */
      public void startProduction(ImageConsumer ic) {
          if (proxies == null) {
-            proxies = new Hashtable();
+            proxies = new Hashtable<>();
          }
-        ImageFilter imgf = (ImageFilter) proxies.get(ic);
+        ImageFilter imgf = proxies.get(ic);
          if (imgf == null) {
              imgf = filter.getFilterInstance(ic);
              proxies.put(ic, imgf);
@@ -200,7 +200,7 @@
       */
      public void requestTopDownLeftRightResend(ImageConsumer ic) {
          if (proxies != null) {
-            ImageFilter imgf = (ImageFilter) proxies.get(ic);
+            ImageFilter imgf = proxies.get(ic);
              if (imgf != null) {
                  imgf.resendTopDownLeftRight(src);
              }
--- old/src/share/classes/java/awt/image/ImageFilter.java 2014-04-29 
13:01:17.000000000 -0700
+++ new/src/share/classes/java/awt/image/ImageFilter.java 2014-04-29 
13:01:17.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -104,6 +104,7 @@
       * @exception NullPointerException if <code>props</code> is null
       */
      public void setProperties(Hashtable<?,?> props) {
+        @SuppressWarnings("unchecked")
          Hashtable<Object,Object> p = 
(Hashtable<Object,Object>)props.clone();
          Object o = p.get("filters");
          if (o == null) {
--- old/src/share/classes/java/awt/image/MemoryImageSource.java 
2014-04-29 13:01:17.000000000 -0700
+++ new/src/share/classes/java/awt/image/MemoryImageSource.java 
2014-04-29 13:01:17.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -111,8 +111,8 @@
      Object pixels;
      int pixeloffset;
      int pixelscan;
-    Hashtable properties;
-    Vector theConsumers = new Vector();
+    Hashtable<?, ?> properties;
+    Vector<ImageConsumer> theConsumers = new Vector<>();
      boolean animating;
      boolean fullbuffers;

@@ -197,7 +197,7 @@
      }

      private void initialize(int w, int h, ColorModel cm,
-                            Object pix, int off, int scan, Hashtable 
props) {
+                            Object pix, int off, int scan, 
Hashtable<?,?> props) {
          width = w;
          height = h;
          model = cm;
@@ -205,7 +205,7 @@
          pixeloffset = off;
          pixelscan = scan;
          if (props == null) {
-            props = new Hashtable();
+            props = new Hashtable<>();
          }
          properties = props;
      }
@@ -343,9 +343,9 @@
      public synchronized void setAnimated(boolean animated) {
          this.animating = animated;
          if (!animating) {
-            Enumeration enum_ = theConsumers.elements();
+            Enumeration<ImageConsumer> enum_ = theConsumers.elements();
              while (enum_.hasMoreElements()) {
-                ImageConsumer ic = (ImageConsumer) enum_.nextElement();
+                ImageConsumer ic = enum_.nextElement();
                  ic.imageComplete(ImageConsumer.STATICIMAGEDONE);
                  if (isConsumer(ic)) {
                      ic.imageComplete(ImageConsumer.IMAGEERROR);
@@ -376,9 +376,9 @@
          }
          this.fullbuffers = fullbuffers;
          if (animating) {
-            Enumeration enum_ = theConsumers.elements();
+            Enumeration<ImageConsumer> enum_ = theConsumers.elements();
              while (enum_.hasMoreElements()) {
-                ImageConsumer ic = (ImageConsumer) enum_.nextElement();
+                ImageConsumer ic = enum_.nextElement();
                  ic.setHints(fullbuffers
                              ? (ImageConsumer.TOPDOWNLEFTRIGHT |
                                 ImageConsumer.COMPLETESCANLINES)
@@ -474,9 +474,9 @@
              if ((w <= 0 || h <= 0) && !framenotify) {
                  return;
              }
-            Enumeration enum_ = theConsumers.elements();
+            Enumeration<ImageConsumer> enum_ = theConsumers.elements();
              while (enum_.hasMoreElements()) {
-                ImageConsumer ic = (ImageConsumer) enum_.nextElement();
+                ImageConsumer ic = enum_.nextElement();
                  if (w > 0 && h > 0) {
                      sendPixels(ic, x, y, w, h);
                  }
--- old/src/share/classes/java/awt/image/ReplicateScaleFilter.java 
2014-04-29 13:01:18.000000000 -0700
+++ new/src/share/classes/java/awt/image/ReplicateScaleFilter.java 
2014-04-29 13:01:17.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -121,6 +121,7 @@
       * with the filtering operation.
       */
      public void setProperties(Hashtable<?,?> props) {
+        @SuppressWarnings("unchecked")
          Hashtable<Object,Object> p = 
(Hashtable<Object,Object>)props.clone();
          String key = "rescale";
          String val = destWidth + "x" + destHeight;
--- old/src/share/classes/java/awt/image/renderable/ParameterBlock.java 
2014-04-29 13:01:18.000000000 -0700
+++ new/src/share/classes/java/awt/image/renderable/ParameterBlock.java 
2014-04-29 13:01:18.000000000 -0700
@@ -153,6 +153,7 @@
       *
       * @return an Object clone of the <code>ParameterBlock</code>.
       */
+    @SuppressWarnings("unchecked") // casts from clone
      public Object clone() {
          ParameterBlock theClone;

@@ -164,10 +165,10 @@
          }

          if (sources != null) {
-            theClone.setSources((Vector)sources.clone());
+ theClone.setSources((Vector<Object>)sources.clone());
          }
          if (parameters != null) {
-            theClone.setParameters((Vector)parameters.clone());
+ theClone.setParameters((Vector<Object>)parameters.clone());
          }
          return (Object) theClone;
      }
@@ -280,7 +281,7 @@

      /** Clears the list of source images. */
      public void removeSources() {
-        sources = new Vector();
+        sources = new Vector<>();
      }

      /**
@@ -313,7 +314,7 @@

      /** Clears the list of parameters. */
      public void removeParameters() {
-        parameters = new Vector();
+        parameters = new Vector<>();
      }

      /**
@@ -696,9 +697,9 @@
       * of the parameters.
       * @return an array of <code>Class</code> objects.
       */
-    public Class [] getParamClasses() {
+    public Class<?>[] getParamClasses() {
          int numParams = getNumParameters();
-        Class [] classes = new Class[numParams];
+        Class<?>[] classes = new Class<?>[numParams];
          int i;

          for (i = 0; i < numParams; i++) {
--- 
old/src/share/classes/java/awt/image/renderable/RenderableImageOp.java 
2014-04-29 13:01:19.000000000 -0700
+++ 
new/src/share/classes/java/awt/image/renderable/RenderableImageOp.java 
2014-04-29 13:01:18.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -83,15 +83,16 @@
       *
       * @return a (possibly empty) Vector of RenderableImages, or null.
       */
+    @SuppressWarnings("unchecked")
      public Vector<RenderableImage> getSources() {
-        return getRenderableSources();
+        return (Vector<RenderableImage>)(Vector)getRenderableSources();
      }

-    private Vector getRenderableSources() {
-        Vector sources = null;
+    private Vector<Object> getRenderableSources() {
+        Vector<Object> sources = null;

          if (paramBlock.getNumSources() > 0) {
-            sources = new Vector();
+            sources = new Vector<>();
              int i = 0;
              while (i < paramBlock.getNumSources()) {
                  Object o = paramBlock.getSource(i);
@@ -314,19 +315,19 @@
          // contains RenderableImage sources, they will be replaced by
          // RenderedImages.
          ParameterBlock renderedParamBlock = 
(ParameterBlock)paramBlock.clone();
-        Vector sources = getRenderableSources();
+        Vector<Object> sources = getRenderableSources();

          try {
              // This assumes that if there is no renderable source, 
that there
              // is a rendered source in paramBlock

              if (sources != null) {
-                Vector renderedSources = new Vector();
+                Vector<Object> renderedSources = new Vector<>();
                  for (int i = 0; i < sources.size(); i++) {
                      rcOut = myCRIF.mapRenderContext(i, renderContext,
                                                      paramBlock, this);
                      RenderedImage rdrdImage =
- ((RenderableImage)sources.elementAt(i)).createRendering(rcOut);
+ ((RenderableImage)sources.elementAt(i)).createRendering(rcOut);
                      if (rdrdImage == null) {
                          return null;
                      }
--- 
old/src/share/classes/java/awt/image/renderable/RenderableImageProducer.java 
2014-04-29 13:01:19.000000000 -0700
+++ 
new/src/share/classes/java/awt/image/renderable/RenderableImageProducer.java 
2014-04-29 13:01:19.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -68,7 +68,7 @@
      RenderContext rc;

      /** A Vector of image consumers. */
-    Vector ics = new Vector();
+    Vector<ImageConsumer> ics = new Vector<>();

      /**
       * Constructs a new RenderableImageProducer from a RenderableImage
@@ -177,12 +177,12 @@
          int width = raster.getWidth();
          int height = raster.getHeight();

-        Enumeration icList;
+        Enumeration<ImageConsumer> icList;
          ImageConsumer ic;
          // Set up the ImageConsumers
          icList = ics.elements();
          while (icList.hasMoreElements()) {
-            ic = (ImageConsumer)icList.nextElement();
+            ic = icList.nextElement();
              ic.setDimensions(width,height);
              ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT |
                          ImageConsumer.COMPLETESCANLINES |
@@ -204,7 +204,7 @@
              // Now send the scanline to the Consumers
              icList = ics.elements();
              while (icList.hasMoreElements()) {
-                ic = (ImageConsumer)icList.nextElement();
+                ic = icList.nextElement();
                  ic.setPixels(0, j, width, 1, colorModel, pix, 0, width);
              }
          }
@@ -212,7 +212,7 @@
          // Now tell the consumers we're done.
          icList = ics.elements();
          while (icList.hasMoreElements()) {
-            ic = (ImageConsumer)icList.nextElement();
+            ic = icList.nextElement();
              ic.imageComplete(ImageConsumer.STATICIMAGEDONE);
          }
      }
--- old/src/share/classes/java/awt/print/Book.java    2014-04-29 
13:01:19.000000000 -0700
+++ new/src/share/classes/java/awt/print/Book.java    2014-04-29 
13:01:19.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
      /**
       * The set of pages that make up the Book.
       */
-    private Vector mPages;
+    private Vector<BookPage> mPages;

   /* Instance Methods */

@@ -55,7 +55,7 @@
       *  Creates a new, empty <code>Book</code>.
       */
      public Book() {
-        mPages = new Vector();
+        mPages = new Vector<BookPage>();
      }

      /**
@@ -167,7 +167,7 @@
      private BookPage getPage(int pageIndex)
          throws ArrayIndexOutOfBoundsException
      {
-        return (BookPage) mPages.elementAt(pageIndex);
+        return mPages.elementAt(pageIndex);
      }

      /**
--- old/src/share/classes/java/awt/print/PrinterJob.java 2014-04-29 
13:01:20.000000000 -0700
+++ new/src/share/classes/java/awt/print/PrinterJob.java 2014-04-29 
13:01:20.000000000 -0700
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -74,9 +74,9 @@
          if (security != null) {
              security.checkPrintJobAccess();
          }
-        return (PrinterJob) java.security.AccessController.doPrivileged(
-            new java.security.PrivilegedAction() {
-            public Object run() {
+        return java.security.AccessController.doPrivileged(
+            new java.security.PrivilegedAction<PrinterJob>() {
+            public PrinterJob run() {
                  String nm = System.getProperty("java.awt.printerjob", 
null);
                  try {
                      return (PrinterJob)Class.forName(nm).newInstance();




More information about the awt-dev mailing list