use numbered classnames instead of superclass-based ones
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/proxy/branches/version-2.0-work@1520889 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java b/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
index 1fcd8dc..2a0a9e3 100644
--- a/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
+++ b/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
@@ -45,6 +45,7 @@
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 @@
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 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