Author: mbenson Date: Sun Sep 8 18:09:03 2013 New Revision: 1520889 URL: http://svn.apache.org/r1520889 Log: use numbered classnames instead of superclass-based ones
Modified: commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java Modified: commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java URL: http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java?rev=1520889&r1=1520888&r2=1520889&view=diff ============================================================================== --- commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java (original) +++ commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java Sun Sep 8 18:09:03 2013 @@ -45,6 +45,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.ReentrantLock; public class ASM4ProxyFactory extends AbstractSubclassingProxyFactory @@ -69,6 +70,8 @@ public class ASM4ProxyFactory extends Ab private static class ProxyGenerator extends AbstractProxyClassGenerator implements Opcodes { + private static final AtomicInteger CLASS_NUMBER = new AtomicInteger(0); + private static final String CLASSNAME_PREFIX = "CommonsProxyASM4_"; private static final String HANDLER_NAME = "__handler"; private static final ReentrantLock LOCK = new ReentrantLock(); @@ -153,17 +156,7 @@ public class ASM4ProxyFactory extends Ab public static Class<?> createProxy(final Class<?> classToProxy, final ClassLoader cl, final Method[] methods, final Class<?>... interfaces) { - return createProxy(classToProxy, cl, proxyName(classToProxy.getName()), methods, interfaces); - } - - private static String proxyName(final String name) - { - final String proxy = name + "$$CommonsProxy"; - if (!proxy.startsWith("java")) - { - return proxy; - } - return "org.apache.commons.proxy2.generated." + proxy; + return createProxy(classToProxy, cl, CLASSNAME_PREFIX + CLASS_NUMBER.incrementAndGet(), methods, interfaces); } public static byte[] generateProxy(final Class<?> classToProxy, final String proxyName, final Method[] methods, final Class<?>... interfaces) throws ProxyFactoryException