I'll push with this improvement; thanks,

-Joe

On 11/12/2013 04:20 AM, Joel Borggren-Franck wrote:
This also allows you to get rid of the raw type suppression I think, the
attached code compiles.

Thanks Remi,

cheers
/Joel

diff --git a/src/share/classes/java/lang/reflect/Proxy.java 
b/src/share/classes/java/lang/reflect/Proxy.java
--- a/src/share/classes/java/lang/reflect/Proxy.java
+++ b/src/share/classes/java/lang/reflect/Proxy.java
@@ -490,13 +490,14 @@
       * a key used for proxy class with any number of implemented interfaces
       * (used here for 3 or more only)
       */
+    @SuppressWarnings("unchecked")
      private static final class KeyX {
          private final int hash;
          private final WeakReference<Class<?>>[] refs;
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]);
              }

On 2013-11-12, Remi Forax wrote:
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



Reply via email to