From ebe23b80cade1cf5f29b4706fc82ecb4763425d8 Mon Sep 17 00:00:00 2001 From: mchung Date: Mon, 3 Mar 2014 14:14:10 -0800 Subject: [PATCH] 8035009: Make Proxy representations consistent Reviewed-by: ahgross, jfranck --- src/share/classes/java/lang/reflect/Proxy.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/share/classes/java/lang/reflect/Proxy.java b/src/share/classes/java/lang/reflect/Proxy.java index 20e62b642..7b80e4595 100644 --- a/src/share/classes/java/lang/reflect/Proxy.java +++ b/src/share/classes/java/lang/reflect/Proxy.java @@ -362,12 +362,13 @@ public class Proxy implements java.io.Serializable { Class... interfaces) throws IllegalArgumentException { - SecurityManager sm = System.getSecurityManager(); + final Class[] intfs = interfaces.clone(); + final SecurityManager sm = System.getSecurityManager(); if (sm != null) { - checkProxyAccess(Reflection.getCallerClass(), loader, interfaces); + checkProxyAccess(Reflection.getCallerClass(), loader, intfs); } - return getProxyClass0(loader, interfaces); + return getProxyClass0(loader, intfs); } /* @@ -706,15 +707,16 @@ public class Proxy implements java.io.Serializable { { Objects.requireNonNull(h); + final Class[] intfs = interfaces.clone(); final SecurityManager sm = System.getSecurityManager(); if (sm != null) { - checkProxyAccess(Reflection.getCallerClass(), loader, interfaces); + checkProxyAccess(Reflection.getCallerClass(), loader, intfs); } /* * Look up or generate the designated proxy class. */ - Class cl = getProxyClass0(loader, interfaces); + Class cl = getProxyClass0(loader, intfs); /* * Invoke its constructor with the designated invocation handler. -- GitLab