JDK 8 RFR: more core libs raw warnings cleanup

Remi Forax forax at univ-mlv.fr
Tue Nov 12 09:48:17 UTC 2013


On 11/12/2013 10:51 AM, Chris Hegarty wrote:
> Looks ok to me Joe.
>
> -Chris.

A small issue,
   refs = (WeakReference<Class<?>>[])new WeakReference[interfaces.length];
should be
   refs = (WeakReference<Class<?>>[])new 
WeakReference<?>[interfaces.length];

otherwise, looks good.

Rémi

>
> On 12/11/13 09:28, Joe Darcy wrote:
>> Hello,
>>
>> Please review the patch below which would remove another batch of raw
>> type javac lint warnings from the core libraries.
>>
>> No signatures of public or protected methods in the Java SE
>> specification have been modified. Regression tests in affected areas 
>> pass.
>>
>> Thanks,
>>
>> -Joe
>>
>> diff -r 9fcb07df1c92 src/share/classes/java/io/ObjectOutputStream.java
>> --- a/src/share/classes/java/io/ObjectOutputStream.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/java/io/ObjectOutputStream.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -1248,7 +1248,7 @@
>>           handles.assign(unshared ? null : desc);
>>
>>           Class<?> cl = desc.forClass();
>> -        Class[] ifaces = cl.getInterfaces();
>> +        Class<?>[] ifaces = cl.getInterfaces();
>>           bout.writeInt(ifaces.length);
>>           for (int i = 0; i < ifaces.length; i++) {
>>               bout.writeUTF(ifaces[i].getName());
>> diff -r 9fcb07df1c92 src/share/classes/java/io/ObjectStreamClass.java
>> --- a/src/share/classes/java/io/ObjectStreamClass.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/java/io/ObjectStreamClass.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -1,5 +1,5 @@
>>   /*
>> - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights
>> reserved.
>> + * Copyright (c) 1996, 2013, 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
>> @@ -1746,7 +1746,7 @@
>>                   dout.writeUTF("()V");
>>               }
>>
>> -            Constructor[] cons = cl.getDeclaredConstructors();
>> +            Constructor<?>[] cons = cl.getDeclaredConstructors();
>>               MemberSignature[] consSigs = new
>> MemberSignature[cons.length];
>>               for (int i = 0; i < cons.length; i++) {
>>                   consSigs[i] = new MemberSignature(cons[i]);
>> diff -r 9fcb07df1c92 src/share/classes/java/lang/reflect/Proxy.java
>> --- a/src/share/classes/java/lang/reflect/Proxy.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/java/lang/reflect/Proxy.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -494,9 +494,10 @@
>>           private final int hash;
>>           private final WeakReference<Class<?>>[] refs;
>>
>> +        @SuppressWarnings({"rawtypes", "unchecked"})
>>           KeyX(Class<?>[] interfaces) {
>>               hash = Arrays.hashCode(interfaces);
>> -            refs = new WeakReference[interfaces.length];
>> +            refs = (WeakReference<Class<?>>[])new
>> WeakReference[interfaces.length];
>>               for (int i = 0; i < interfaces.length; i++) {
>>                   refs[i] = new WeakReference<>(interfaces[i]);
>>               }
>> diff -r 9fcb07df1c92 src/share/classes/java/nio/file/TempFileHelper.java
>> --- a/src/share/classes/java/nio/file/TempFileHelper.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/java/nio/file/TempFileHelper.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -81,7 +81,7 @@
>>                                  String prefix,
>>                                  String suffix,
>>                                  boolean createDirectory,
>> -                               FileAttribute[] attrs)
>> +                               FileAttribute<?>[] attrs)
>>           throws IOException
>>       {
>>           if (prefix == null)
>> @@ -155,7 +155,7 @@
>>       static Path createTempFile(Path dir,
>>                                  String prefix,
>>                                  String suffix,
>> -                               FileAttribute[] attrs)
>> +                               FileAttribute<?>[] attrs)
>>           throws IOException
>>       {
>>           return create(dir, prefix, suffix, false, attrs);
>> @@ -167,7 +167,7 @@
>>        */
>>       static Path createTempDirectory(Path dir,
>>                                       String prefix,
>> -                                    FileAttribute[] attrs)
>> +                                    FileAttribute<?>[] attrs)
>>           throws IOException
>>       {
>>           return create(dir, prefix, null, true, attrs);
>> diff -r 9fcb07df1c92 src/share/classes/java/util/IdentityHashMap.java
>> --- a/src/share/classes/java/util/IdentityHashMap.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/java/util/IdentityHashMap.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -1243,7 +1243,7 @@
>>                       if (ti >= size) {
>>                           throw new ConcurrentModificationException();
>>                       }
>> -                    a[ti++] = (T) new
>> AbstractMap.SimpleEntry(unmaskNull(key), tab[si + 1]);
>> +                    a[ti++] = (T) new
>> AbstractMap.SimpleEntry<>(unmaskNull(key), tab[si + 1]);
>>                   }
>>               }
>>               // fewer elements than expected or concurrent modification
>> from other thread detected
>> diff -r 9fcb07df1c92 src/share/classes/java/util/logging/Logger.java
>> --- a/src/share/classes/java/util/logging/Logger.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/java/util/logging/Logger.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -351,7 +351,7 @@
>>                                            ? caller.getClassLoader()
>>                                            : null);
>>           if (callersClassLoader != null) {
>> -            this.callersClassLoaderRef = new
>> WeakReference(callersClassLoader);
>> +            this.callersClassLoaderRef = new
>> WeakReference<>(callersClassLoader);
>>           }
>>       }
>>
>> diff -r 9fcb07df1c92 src/share/classes/java/util/logging/Logging.java
>> --- a/src/share/classes/java/util/logging/Logging.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/java/util/logging/Logging.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -1,5 +1,5 @@
>>   /*
>> - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights
>> reserved.
>> + * Copyright (c) 2003, 2013, 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
>> @@ -55,11 +55,11 @@
>>       }
>>
>>       public List<String> getLoggerNames() {
>> -        Enumeration loggers = logManager.getLoggerNames();
>> +        Enumeration<String> loggers = logManager.getLoggerNames();
>>           ArrayList<String> array = new ArrayList<>();
>>
>>           for (; loggers.hasMoreElements();) {
>> -            array.add((String) loggers.nextElement());
>> +            array.add(loggers.nextElement());
>>           }
>>           return array;
>>       }
>> diff -r 9fcb07df1c92 src/share/classes/sun/misc/Cleaner.java
>> --- a/src/share/classes/sun/misc/Cleaner.java    Sat Nov 09 04:21:28
>> 2013 +0400
>> +++ b/src/share/classes/sun/misc/Cleaner.java    Tue Nov 12 00:51:15
>> 2013 -0800
>> @@ -1,5 +1,5 @@
>>   /*
>> - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights
>> reserved.
>> + * Copyright (c) 2003, 2013, 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
>> @@ -57,14 +57,14 @@
>>    */
>>
>>   public class Cleaner
>> -    extends PhantomReference
>> +    extends PhantomReference<Object>
>>   {
>>
>>       // Dummy reference queue, needed because the PhantomReference
>> constructor
>>       // insists that we pass a queue.  Nothing will ever be placed on
>> this queue
>>       // since the reference handler invokes cleaners explicitly.
>>       //
>> -    private static final ReferenceQueue dummyQueue = new 
>> ReferenceQueue();
>> +    private static final ReferenceQueue<Object> dummyQueue = new
>> ReferenceQueue<>();
>>
>>       // Doubly-linked list of live cleaners, which prevents the 
>> cleaners
>>       // themselves from being GC'd before their referents
>> @@ -119,6 +119,7 @@
>>       /**
>>        * Creates a new cleaner.
>>        *
>> +     * @param  ob the referent object to be cleaned
>>        * @param  thunk
>>        *         The cleanup code to be run when the cleaner is
>> invoked.  The
>>        *         cleanup code is run directly from the reference-handler
>> thread,
>> diff -r 9fcb07df1c92 src/share/classes/sun/misc/ProxyGenerator.java
>> --- a/src/share/classes/sun/misc/ProxyGenerator.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/sun/misc/ProxyGenerator.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -384,7 +384,7 @@
>>       private String className;
>>
>>       /** proxy interfaces */
>> -    private Class[] interfaces;
>> +    private Class<?>[] interfaces;
>>
>>       /** proxy class access flags */
>>       private int accessFlags;
>> diff -r 9fcb07df1c92 src/share/classes/sun/rmi/rmic/Main.java
>> --- a/src/share/classes/sun/rmi/rmic/Main.java    Sat Nov 09 04:21:28
>> 2013 +0400
>> +++ b/src/share/classes/sun/rmi/rmic/Main.java    Tue Nov 12 00:51:15
>> 2013 -0800
>> @@ -494,7 +494,7 @@
>>                                                extDirsArg);
>>           BatchEnvironment result = null;
>>           try {
>> -            Class[] ctorArgTypes =
>> {OutputStream.class,ClassPath.class,Main.class};
>> +            Class<?>[] ctorArgTypes =
>> {OutputStream.class,ClassPath.class,Main.class};
>>               Object[] ctorArgs = {out,classPath,this};
>>               Constructor<? extends BatchEnvironment> constructor =
>>                   environmentClass.getConstructor(ctorArgTypes);
>> diff -r 9fcb07df1c92 src/share/classes/sun/rmi/server/LoaderHandler.java
>> --- a/src/share/classes/sun/rmi/server/LoaderHandler.java    Sat Nov 09
>> 04:21:28 2013 +0400
>> +++ b/src/share/classes/sun/rmi/server/LoaderHandler.java    Tue Nov 12
>> 00:51:15 2013 -0800
>> @@ -692,7 +692,7 @@
>>        * Define a proxy class in the given class loader.  The proxy
>>        * class will implement the given interfaces Classes.
>>        */
>> -    private static Class<?> loadProxyClass(ClassLoader loader, Class[]
>> interfaces)
>> +    private static Class<?> loadProxyClass(ClassLoader loader,
>> Class<?>[] interfaces)
>>           throws ClassNotFoundException
>>       {
>>           try {
>> @@ -719,7 +719,7 @@
>>        */
>>       private static ClassLoader loadProxyInterfaces(String[] 
>> interfaces,
>>                                                      ClassLoader loader,
>> -                                                   Class[] classObjs,
>> + Class<?>[] classObjs,
>>                                                      boolean[] 
>> nonpublic)
>>           throws ClassNotFoundException
>>       {
>> diff -r 9fcb07df1c92 
>> src/share/classes/sun/rmi/server/UnicastServerRef.java
>> --- a/src/share/classes/sun/rmi/server/UnicastServerRef.java Sat Nov
>> 09 04:21:28 2013 +0400
>> +++ b/src/share/classes/sun/rmi/server/UnicastServerRef.java Tue Nov
>> 12 00:51:15 2013 -0800
>> @@ -299,7 +299,7 @@
>>               logCall(obj, method);
>>
>>               // unmarshal parameters
>> -            Class[] types = method.getParameterTypes();
>> +            Class<?>[] types = method.getParameterTypes();
>>               Object[] params = new Object[types.length];
>>
>>               try {
>> diff -r 9fcb07df1c92 src/share/classes/sun/rmi/server/Util.java
>> --- a/src/share/classes/sun/rmi/server/Util.java    Sat Nov 09 04:21:28
>> 2013 +0400
>> +++ b/src/share/classes/sun/rmi/server/Util.java    Tue Nov 12 00:51:15
>> 2013 -0800
>> @@ -87,7 +87,7 @@
>>           Collections.synchronizedMap(new WeakHashMap<Class<?>, 
>> Void>(11));
>>
>>       /** parameter types for stub constructor */
>> -    private static final Class[] stubConsParamTypes = { 
>> RemoteRef.class };
>> +    private static final Class<?>[] stubConsParamTypes = {
>> RemoteRef.class };
>>
>>       private Util() {
>>       }
>> @@ -143,7 +143,7 @@
>>           }
>>
>>           final ClassLoader loader = implClass.getClassLoader();
>> -        final Class[] interfaces = getRemoteInterfaces(implClass);
>> +        final Class<?>[] interfaces = getRemoteInterfaces(implClass);
>>           final InvocationHandler handler =
>>               new RemoteObjectInvocationHandler(clientRef);
>>




More information about the core-libs-dev mailing list