[jboss-cvs] JBossAS SVN: r69389 - in projects/aop/trunk/aop/src: test/org/jboss/test/aop/proxy and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 28 10:43:08 EST 2008
Author: kabir.khan at jboss.com
Date: 2008-01-28 10:43:08 -0500 (Mon, 28 Jan 2008)
New Revision: 69389
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java
projects/aop/trunk/aop/src/test/org/jboss/test/aop/proxy/AnnotatedPOJO.java
Log:
[JBAOP-519] Don't add methods implemented by both the ContainerProxyFactory.createBasics() and by the proxied class
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java 2008-01-28 15:38:46 UTC (rev 69388)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerProxyFactory.java 2008-01-28 15:43:08 UTC (rev 69389)
@@ -60,6 +60,7 @@
import org.jboss.aop.instrument.TransformerCommon;
import org.jboss.aop.introduction.InterfaceIntroduction;
import org.jboss.aop.util.JavassistMethodHashing;
+import org.jboss.aop.util.MethodHashing;
/**
@@ -101,6 +102,9 @@
ProxyStrategy proxyStrategy;
private CtConstructor defaultCtor;
+
+ /** Methods hardcoded in createBasics */
+ private HashSet<Long> hardcodedMethods = new HashSet<Long>();
public static Class getProxyClass(Class clazz, AspectManager manager) throws Exception
{
@@ -281,7 +285,7 @@
copyAnnotations(superclass, proxy);
copySignature(superclass, proxy);
-
+
return proxy;
}
@@ -430,6 +434,7 @@
CtMethod method = CtNewMethod.make(templateMethod.getReturnType(), name, templateMethod.getParameterTypes(), templateMethod.getExceptionTypes(), body, proxy);
method.setModifiers(templateMethod.getModifiers());
proxy.addMethod(method);
+ hardcodedMethods.add(JavassistMethodHashing.methodHash(method));
return method;
}
@@ -615,6 +620,8 @@
Long hash = (Long) entry.getKey();
if (addedMethods.contains(hash)) continue;
+ if (hardcodedMethods.contains(hash)) continue;
+
addedMethods.add(hash);
String aopReturnStr = (m.getReturnType().equals(CtClass.voidType)) ? "" : "return ($r)";
String returnStr = (m.getReturnType().equals(CtClass.voidType)) ? "" : "return ";
Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/proxy/AnnotatedPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/proxy/AnnotatedPOJO.java 2008-01-28 15:38:46 UTC (rev 69388)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/proxy/AnnotatedPOJO.java 2008-01-28 15:43:08 UTC (rev 69389)
@@ -42,4 +42,9 @@
{
return x;
}
+
+ public String toString()
+ {
+ return "TEST";
+ }
}
More information about the jboss-cvs-commits
mailing list