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