looks fine joe On Jul 31, 2014, at 1:57 PM, Joe Darcy <joe.da...@oracle.com> wrote:
> Hello, > > There are a few stray raw and unchecked warnings remaining in core libs; > please review my fix: > > JDK-8054050: Fix stay raw and unchecked lint warnings in core libs > http://cr.openjdk.java.net/~darcy/8054050.0/ > > Patch below. > > Thanks, > > -Joe > > --- old/src/share/classes/com/sun/management/GcInfo.java 2014-07-31 > 10:51:14.000000000 -0700 > +++ new/src/share/classes/com/sun/management/GcInfo.java 2014-07-31 > 10:51:14.000000000 -0700 > @@ -267,7 +267,7 @@ > return cdata.toString(); > } > > - public Collection values() { > + public Collection<?> values() { > return cdata.values(); > } > > --- > old/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java > 2014-07-31 10:51:14.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java > 2014-07-31 10:51:14.000000000 -0700 > @@ -33,18 +33,18 @@ > > public class ExpressionParser implements ExpressionParserConstants { > > - Stack stack = new Stack(); > + Stack<LValue> stack = new Stack<>(); > VirtualMachine vm = null; > GetFrame frameGetter = null; > private static GetFrame lastFrameGetter; > private static LValue lastLValue; > > LValue peek() { > - return (LValue)stack.peek(); > + return stack.peek(); > } > > LValue pop() { > - return (LValue)stack.pop(); > + return stack.pop(); > } > > void push(LValue lval) { > @@ -915,7 +915,7 @@ > } > > final public void PrimarySuffix() throws ParseException { > - List argList; > + List<Value> argList; > switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { > case LBRACKET: > jj_consume_token(LBRACKET); > @@ -993,8 +993,8 @@ > jj_consume_token(NULL); > } > > - final public List Arguments() throws ParseException { > - List argList = new ArrayList(); > + final public List<Value> Arguments() throws ParseException { > + List<Value> argList = new ArrayList<>(); > jj_consume_token(LPAREN); > switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { > case FALSE: > @@ -1026,7 +1026,7 @@ > throw new Error("Missing return statement in function"); > } > > - final public void ArgumentList(List argList) throws ParseException { > + final public void ArgumentList(List<Value> argList) throws ParseException { > Expression(); > argList.add(pop().interiorGetValue()); > label_17: > @@ -1046,7 +1046,7 @@ > } > > final public void AllocationExpression() throws ParseException { > - List argList; String className; > + List<Value> argList; String className; > if (jj_2_7(2)) { > jj_consume_token(NEW); > PrimitiveType(); > --- old/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java > 2014-07-31 10:51:15.000000000 -0700 > +++ new/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java > 2014-07-31 10:51:15.000000000 -0700 > @@ -229,9 +229,9 @@ > return name.indexOf('[') != -1; > } > > - public Enumeration getInstances(boolean includeSubclasses) { > + public Enumeration<JavaHeapObject> getInstances(boolean > includeSubclasses) { > if (includeSubclasses) { > - Enumeration res = instances.elements(); > + Enumeration<JavaHeapObject> res = instances.elements(); > for (int i = 0; i < subclasses.length; i++) { > res = new CompositeEnumeration(res, > subclasses[i].getInstances(true)); > --- > old/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java > 2014-07-31 10:51:15.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java > 2014-07-31 10:51:15.000000000 -0700 > @@ -166,11 +166,11 @@ > * > * @return an Enumeration of JavaHeapObject instances > */ > - public Enumeration getReferers() { > + public Enumeration<JavaThing> getReferers() { > if (referersLen != -1) { > throw new RuntimeException("not resolved: " + getIdString()); > } > - return new Enumeration() { > + return new Enumeration<JavaThing>() { > > private int num = 0; > > @@ -178,7 +178,7 @@ > return referers != null && num < referers.length; > } > > - public Object nextElement() { > + public JavaThing nextElement() { > return referers[num++]; > } > }; > --- > old/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java > 2014-07-31 10:51:16.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java > 2014-07-31 10:51:16.000000000 -0700 > @@ -54,7 +54,7 @@ > > private File excludesFile; > private long lastModified; > - private Hashtable methods; // Hashtable<String, String>, used as a bag > + private Hashtable<String, String> methods; // Used as a bag > > /** > * Create a new ReachableExcludesImpl over the given file. The file will > be > --- > old/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java > 2014-07-31 10:51:16.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java > 2014-07-31 10:51:16.000000000 -0700 > @@ -86,7 +86,7 @@ > // Now grab the elements into a vector, and sort it in decreasing size > JavaThing[] things = new JavaThing[bag.size()]; > int i = 0; > - for (Enumeration e = bag.elements(); e.hasMoreElements(); ) { > + for (Enumeration<JavaHeapObject> e = bag.elements(); > e.hasMoreElements(); ) { > things[i++] = (JavaThing) e.nextElement(); > } > ArraySorter.sort(things, new Comparer() { > @@ -131,7 +131,7 @@ > return usedFields; > } > > - private String[] getElements(Hashtable ht) { > + private String[] getElements(Hashtable<?, ?> ht) { > Object[] keys = ht.keySet().toArray(); > int len = keys.length; > String[] res = new String[len]; > --- old/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java > 2014-07-31 10:51:17.000000000 -0700 > +++ new/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java > 2014-07-31 10:51:16.000000000 -0700 > @@ -81,7 +81,7 @@ > new HashMap<JavaHeapObject, Root>(); > > // soft cache of finalizeable objects - lazily initialized > - private SoftReference<Vector> finalizablesCache; > + private SoftReference<Vector<?>> finalizablesCache; > > // represents null reference > private JavaThing nullThing; > @@ -383,7 +383,7 @@ > /** > * Return an Iterator of all of the classes in this snapshot. > **/ > - public Iterator getClasses() { > + public Iterator<JavaClass> getClasses() { > // note that because classes is a TreeMap > // classes are already sorted by name > return classes.values().iterator(); > @@ -395,8 +395,8 @@ > return res; > } > > - public synchronized Enumeration getFinalizerObjects() { > - Vector obj; > + public synchronized Enumeration<?> getFinalizerObjects() { > + Vector<?> obj; > if (finalizablesCache != null && > (obj = finalizablesCache.get()) != null) { > return obj.elements(); > @@ -418,7 +418,7 @@ > finalizables.add(referent); > } > } > - finalizablesCache = new SoftReference<Vector>(finalizables); > + finalizablesCache = new SoftReference<Vector<?>>(finalizables); > return finalizables.elements(); > } > > @@ -455,7 +455,7 @@ > // Even though curr is in the rootset, we want to explore its > // referers, because they might be more interesting. > } > - Enumeration referers = curr.getReferers(); > + Enumeration<JavaThing> referers = curr.getReferers(); > while (referers.hasMoreElements()) { > JavaHeapObject t = (JavaHeapObject) referers.nextElement(); > if (t != null && !visited.containsKey(t)) { > --- old/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java > 2014-07-31 10:51:17.000000000 -0700 > +++ new/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java > 2014-07-31 10:51:17.000000000 -0700 > @@ -51,7 +51,7 @@ > > // create JavaScript engine > Method getEngineMethod = managerClass.getMethod("getEngineByName", > - new Class[] { String.class }); > + new Class<?>[] { String.class }); > Object jse = getEngineMethod.invoke(manager, new Object[] {"js"}); > oqlSupported = (jse != null); > } catch (Exception exp) { > @@ -205,9 +205,9 @@ > } > > if (q.className != null) { > - Enumeration objects = clazz.getInstances(q.isInstanceOf); > + Enumeration<JavaHeapObject> objects = > clazz.getInstances(q.isInstanceOf); > while (objects.hasMoreElements()) { > - JavaHeapObject obj = (JavaHeapObject) > objects.nextElement(); > + JavaHeapObject obj = objects.nextElement(); > Object[] args = new Object[] { wrapJavaObject(obj) }; > boolean b = (whereCode == null); > if (!b) { > @@ -265,14 +265,14 @@ > > // create JavaScript engine > Method getEngineMethod = managerClass.getMethod("getEngineByName", > - new Class[] { String.class }); > + new Class<?>[] { String.class }); > engine = getEngineMethod.invoke(manager, new Object[] {"js"}); > > // initialize engine with init file (hat.js) > InputStream strm = getInitStream(); > Class<?> engineClass = Class.forName("javax.script.ScriptEngine"); > evalMethod = engineClass.getMethod("eval", > - new Class[] { Reader.class }); > + new Class<?>[] { Reader.class }); > evalMethod.invoke(engine, new Object[] {new > InputStreamReader(strm)}); > > // initialize ScriptEngine.eval(String) and > @@ -280,13 +280,13 @@ > Class<?> invocableClass = Class.forName("javax.script.Invocable"); > > evalMethod = engineClass.getMethod("eval", > - new Class[] { String.class }); > + new Class<?>[] { String.class }); > invokeMethod = invocableClass.getMethod("invokeFunction", > - new Class[] { String.class, Object[].class > }); > + new Class<?>[] { String.class, > Object[].class }); > > // initialize ScriptEngine.put(String, Object) method > Method putMethod = engineClass.getMethod("put", > - new Class[] { String.class, Object.class > }); > + new Class<?>[] { String.class, > Object.class }); > > // call ScriptEngine.put to initialize built-in heap object > putMethod.invoke(engine, new Object[] { > --- > old/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java > 2014-07-31 10:51:18.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java > 2014-07-31 10:51:17.000000000 -0700 > @@ -58,10 +58,10 @@ > startHtml("All Classes (including platform)"); > } > > - Iterator classes = snapshot.getClasses(); > + Iterator<JavaClass> classes = snapshot.getClasses(); > String lastPackage = null; > while (classes.hasNext()) { > - JavaClass clazz = (JavaClass) classes.next(); > + JavaClass clazz = classes.next(); > if (excludePlatform && PlatformClasses.isPlatformClass(clazz)) { > // skip this.. > continue; > --- old/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java > 2014-07-31 10:51:18.000000000 -0700 > +++ new/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java > 2014-07-31 10:51:18.000000000 -0700 > @@ -151,7 +151,7 @@ > } > out.println("<h2>References to this object:</h2>"); > out.flush(); > - Enumeration referers = obj.getReferers(); > + Enumeration<JavaThing> referers = obj.getReferers(); > while (referers.hasMoreElements()) { > JavaHeapObject ref = (JavaHeapObject) referers.nextElement(); > printThing(ref); > --- > old/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java > 2014-07-31 10:51:19.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java > 2014-07-31 10:51:19.000000000 -0700 > @@ -37,7 +37,7 @@ > > public class FinalizerObjectsQuery extends QueryHandler { > public void run() { > - Enumeration objs = snapshot.getFinalizerObjects(); > + Enumeration<?> objs = snapshot.getFinalizerObjects(); > startHtml("Objects pending finalization"); > > out.println("<a href='/finalizerSummary/'>Finalizer summary</a>"); > --- > old/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java > 2014-07-31 10:51:19.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java > 2014-07-31 10:51:19.000000000 -0700 > @@ -37,7 +37,7 @@ > > public class FinalizerSummaryQuery extends QueryHandler { > public void run() { > - Enumeration objs = snapshot.getFinalizerObjects(); > + Enumeration<?> objs = snapshot.getFinalizerObjects(); > startHtml("Finalizer Summary"); > > out.println("<p align='center'>"); > @@ -74,7 +74,7 @@ > private long count; > } > > - private void printFinalizerSummary(Enumeration objs) { > + private void printFinalizerSummary(Enumeration<?> objs) { > int count = 0; > Map<JavaClass, HistogramElement> map = new HashMap<JavaClass, > HistogramElement>(); > > --- > old/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java > 2014-07-31 10:51:20.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java > 2014-07-31 10:51:20.000000000 -0700 > @@ -111,10 +111,10 @@ > } > out.print("</a> "); > if (snapshot.getHasNewSet()) { > - Enumeration objects = clazz.getInstances(false); > + Enumeration<JavaHeapObject> objects = > clazz.getInstances(false); > int newInst = 0; > while (objects.hasMoreElements()) { > - JavaHeapObject obj = > (JavaHeapObject)objects.nextElement(); > + JavaHeapObject obj = objects.nextElement(); > if (obj.isNew()) { > newInst++; > } > --- > old/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java > 2014-07-31 10:51:21.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java > 2014-07-31 10:51:20.000000000 -0700 > @@ -73,11 +73,11 @@ > out.print("<strong>"); > printClass(clazz); > out.print("</strong><br><br>"); > - Enumeration objects = clazz.getInstances(includeSubclasses); > + Enumeration<JavaHeapObject> objects = > clazz.getInstances(includeSubclasses); > long totalSize = 0; > long instances = 0; > while (objects.hasMoreElements()) { > - JavaHeapObject obj = (JavaHeapObject) objects.nextElement(); > + JavaHeapObject obj = objects.nextElement(); > if (newObjects && !obj.isNew()) > continue; > printThing(obj); > --- > old/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java > 2014-07-31 10:51:21.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java > 2014-07-31 10:51:21.000000000 -0700 > @@ -47,15 +47,15 @@ > } else { > Map<JavaClass, Long> referrersStat = new HashMap<JavaClass, > Long>(); > final Map<JavaClass, Long> refereesStat = new HashMap<JavaClass, > Long>(); > - Enumeration instances = clazz.getInstances(false); > + Enumeration<JavaHeapObject> instances = > clazz.getInstances(false); > while (instances.hasMoreElements()) { > - JavaHeapObject instance = (JavaHeapObject) > instances.nextElement(); > + JavaHeapObject instance = instances.nextElement(); > if (instance.getId() == -1) { > continue; > } > - Enumeration e = instance.getReferers(); > + Enumeration<JavaThing> e = instance.getReferers(); > while (e.hasMoreElements()) { > - JavaHeapObject ref = (JavaHeapObject) e.nextElement(); > + JavaHeapObject ref = (JavaHeapObject)e.nextElement(); > JavaClass cl = ref.getClazz(); > if (cl == null) { > System.out.println("null class for " + ref); > --- > old/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java > 2014-07-31 10:51:22.000000000 -0700 > +++ > new/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java > 2014-07-31 10:51:21.000000000 -0700 > @@ -34,12 +34,13 @@ > > import java.util.Enumeration; > import java.util.NoSuchElementException; > +import com.sun.tools.hat.internal.model.JavaHeapObject; > > -public class CompositeEnumeration implements Enumeration { > - Enumeration e1; > - Enumeration e2; > +public class CompositeEnumeration implements Enumeration<JavaHeapObject> { > + Enumeration<JavaHeapObject> e1; > + Enumeration<JavaHeapObject> e2; > > - public CompositeEnumeration(Enumeration e1, Enumeration e2) { > + public CompositeEnumeration(Enumeration<JavaHeapObject> e1, > Enumeration<JavaHeapObject> e2) { > this.e1 = e1; > this.e2 = e2; > } > @@ -48,7 +49,7 @@ > return e1.hasMoreElements() || e2.hasMoreElements(); > } > > - public Object nextElement() { > + public JavaHeapObject nextElement() { > if (e1.hasMoreElements()) { > return e1.nextElement(); > } > --- old/src/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java > 2014-07-31 10:51:22.000000000 -0700 > +++ new/src/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java > 2014-07-31 10:51:22.000000000 -0700 > @@ -39,7 +39,7 @@ > // Warnings from List filters and List[] requestLists is hard to fix. > // Remove SuppressWarning when we fix the warnings from List filters > // and List[] requestLists. The generic array is not supported. > -@SuppressWarnings("unchecked") > +@SuppressWarnings({"unchecked", "rawtypes"}) > class EventRequestManagerImpl extends MirrorImpl > implements EventRequestManager > { > --- old/src/share/classes/jdk/nio/zipfs/ZipFileAttributeView.java 2014-07-31 > 10:51:22.000000000 -0700 > +++ new/src/share/classes/jdk/nio/zipfs/ZipFileAttributeView.java 2014-07-31 > 10:51:22.000000000 -0700 > @@ -59,6 +59,7 @@ > this.isZipView = isZipView; > } > > + @SuppressWarnings("unchecked") // Cast to V > static <V extends FileAttributeView> V get(ZipPath path, Class<V> type) { > if (type == null) > throw new NullPointerException(); > --- old/src/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java 2014-07-31 > 10:51:23.000000000 -0700 > +++ new/src/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java 2014-07-31 > 10:51:23.000000000 -0700 > @@ -271,6 +271,7 @@ > } > > @Override > + @SuppressWarnings("unchecked") // Cast to A > public <A extends BasicFileAttributes> A > readAttributes(Path path, Class<A> type, LinkOption... options) > throws IOException > --- old/src/solaris/classes/sun/nio/ch/InheritedChannel.java 2014-07-31 > 10:51:24.000000000 -0700 > +++ new/src/solaris/classes/sun/nio/ch/InheritedChannel.java 2014-07-31 > 10:51:23.000000000 -0700 > @@ -165,7 +165,7 @@ > // Have to use reflection and also make assumption on how FD > // is implemented. > > - Class paramTypes[] = { int.class }; > + Class<?> paramTypes[] = { int.class }; > Constructor<?> ctr = > Reflect.lookupConstructor("java.io.FileDescriptor", > paramTypes); > Object args[] = { new Integer(fdVal) }; > Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037 Oracle Java Engineering 1 Network Drive Burlington, MA 01803 lance.ander...@oracle.com