[jboss-cvs] JBossAS SVN: r65995 - in projects/aop/trunk/aop/src: resources/test/annotatedAdviceParams and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 9 20:44:55 EDT 2007


Author: flavia.rainone at jboss.com
Date: 2007-10-09 20:44:54 -0400 (Tue, 09 Oct 2007)
New Revision: 65995

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorExecutionTransformer.java
   projects/aop/trunk/aop/src/resources/test/annotatedAdviceParams/jboss-aop.xml
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgAspectGenerics.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgInvalidJDK50TestCase.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgTestCase.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsInvalidPOJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsPOJO.java
Log:
[JBAOP-472] Bug solved and tested with constructor execution wrappers

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorExecutionTransformer.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorExecutionTransformer.java	2007-10-09 22:14:52 UTC (rev 65994)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/ConstructorExecutionTransformer.java	2007-10-10 00:44:54 UTC (rev 65995)
@@ -22,6 +22,7 @@
 package org.jboss.aop.instrument;
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -35,6 +36,8 @@
 import javassist.CtNewMethod;
 import javassist.Modifier;
 import javassist.NotFoundException;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.SignatureAttribute;
 
 import org.jboss.aop.ClassAdvisor;
 import org.jboss.aop.pointcut.Pointcut;
@@ -496,6 +499,15 @@
       setTemporaryWrapperCode(type, wmethod);
       clazz.addMethod(wmethod);
       
+      // copy attribute signature
+      MethodInfo constructorInfo = constructor.getMethodInfo2();
+      SignatureAttribute attribute = (SignatureAttribute) constructorInfo.getAttribute(SignatureAttribute.tag);
+      if (attribute != null)
+      {
+         MethodInfo wrapperInfo = wmethod.getMethodInfo2();
+         wrapperInfo.addAttribute(attribute.copy(wrapperInfo.getConstPool(), new HashMap()));
+      }
+      
       // prepare ForWrapping
       getWrapper().prepareForWrapping(constructor, CONSTRUCTOR_STATUS);
    }

Modified: projects/aop/trunk/aop/src/resources/test/annotatedAdviceParams/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/annotatedAdviceParams/jboss-aop.xml	2007-10-09 22:14:52 UTC (rev 65994)
+++ projects/aop/trunk/aop/src/resources/test/annotatedAdviceParams/jboss-aop.xml	2007-10-10 00:44:54 UTC (rev 65995)
@@ -357,17 +357,14 @@
    
    <aspect class="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics" scope="PER_VM"/>
 
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->*(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->*)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->*(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->new(java.util.List))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->*)">
       <before name="before1" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <before name="before2" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <before name="before4" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <before name="before5" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <before name="before6" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
-      <around name="around1" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
-      <around name="around2" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
-      <around name="around3" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
-      <around name="around4" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
-      <around name="around6" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <after name="after1" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <after name="after2" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <after name="after3" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
@@ -384,60 +381,114 @@
       <finally name="finally4" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
       <finally name="finally6" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
+
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->*(java.util.List))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->*)">
+      <around name="around1" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around2" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around3" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around4" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around6" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+   </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before7(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before7)">
+   <bind pointcut="execution(org.jboss.test.aop.annotatedAdviceParams.ArgsPOJO->new(java.util.List))">
+      <around name="around1_Cons" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around2_Cons" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around3_Cons" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around4_Cons" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+      <around name="around6_Cons" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+   </bind>
+      
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before7(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, boolean))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before7)">
       <before name="before7" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before8(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before8)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before8(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, char))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Before8)">
       <before name="before8" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around5(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around5)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around5(java.util.List))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around5)">
       <around name="around5" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around7(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around7)">
+   <bind pointcut="execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, byte))">
+      <around name="around5_" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+   </bind>
+   
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around7(java.util.List))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around7)">
       <around name="around7" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around8(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around8)">
+   <bind pointcut="execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, short))">
+      <around name="around7_" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+   </bind>
+   
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around8(java.util.List))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Around8)">
       <around name="around8" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After5(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After5)">
+   <bind pointcut="execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, int))">
+      <around name="around8_" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
+   </bind>
+   
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After5(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, long))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After5)">
       <after name="after5" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After7(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After7)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After7(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, float))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After7)">
       <after name="after7" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After8(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After8)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After8(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, double))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*After8)">
       <after name="after8" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing2(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing2)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing2(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, boolean, boolean))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing2)">
       <throwing name="throwing2" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing7(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing7)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing7(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, boolean, char))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing7)">
       <throwing name="throwing7" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing8(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing8)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing8(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, boolean, byte))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Throwing8)">
       <throwing name="throwing8" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally5(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally5)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally5(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, boolean, short))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally5)">
       <finally name="finally5" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally7(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally7)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally7(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, boolean, int))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally7)">
       <finally name="finally7" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    
-   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally8(java.util.List)) OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally8)">
+   <bind pointcut="execution(void org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally8(java.util.List))
+      OR execution(org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->new(java.util.List, boolean, long))
+      OR set(java.util.List org.jboss.test.aop.annotatedAdviceParams.ArgsInvalidPOJO->*Finally8)">
       <finally name="finally8" aspect="org.jboss.test.aop.annotatedAdviceParams.ArgAspectGenerics"/>
    </bind>
    

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgAspectGenerics.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgAspectGenerics.java	2007-10-09 22:14:52 UTC (rev 65994)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgAspectGenerics.java	2007-10-10 00:44:54 UTC (rev 65995)
@@ -190,6 +190,54 @@
       Assert.fail("This advice should never be executed");
    }
    
+   public ArgsPOJO around1_Cons(@Arg Collection<SuperValue> arg) throws Throwable
+   {
+      around1 = true;
+      return (ArgsPOJO) CurrentInvocation.proceed();
+   }
+   
+   public ArgsPOJO around2_Cons(@Arg Collection arg) throws Throwable
+   {
+      around2 = true;
+      return (ArgsPOJO) CurrentInvocation.proceed();
+   }
+   
+   public ArgsPOJO around3_Cons(@Arg List<SuperValue> arg) throws Throwable
+   {
+      around3 = true;
+      return (ArgsPOJO) CurrentInvocation.proceed();
+   }
+   
+   public ArgsPOJO around4_Cons(@Arg List<? extends Object> arg) throws Throwable
+   {
+      around4 = true;
+      return (ArgsPOJO) CurrentInvocation.proceed();
+   }
+   
+   public ArgsPOJO around5_Cons(@Arg List<Interface> arg) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return (ArgsPOJO) CurrentInvocation.proceed();
+   }
+   
+   public ArgsPOJO around6_Cons(@Arg List arg) throws Throwable
+   {
+      around6 = true;
+      return (ArgsPOJO) CurrentInvocation.proceed();
+   }
+   
+   public ArgsPOJO around7_Cons(@Arg ArrayList<Object> arg) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return null;
+   }
+   
+   public ArgsPOJO around8_Cons(@Arg Set<Object> arg) throws Throwable
+   {
+      Assert.fail("This advice should never be executed");
+      return null;
+   }
+   
    public void after1(@Arg List<SuperValue> arg)
    {
       after1 = true;

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgInvalidJDK50TestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgInvalidJDK50TestCase.java	2007-10-09 22:14:52 UTC (rev 65994)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgInvalidJDK50TestCase.java	2007-10-10 00:44:54 UTC (rev 65995)
@@ -541,4 +541,176 @@
       }
       assertTrue(thrown);
    }
+   
+   public void testGenerics4()
+   {
+      List<SuperValue> list = new ArrayList<SuperValue>();
+      boolean thrown = false;
+      try
+      {
+         // test before7
+         new ArgsInvalidPOJO(list, false);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test before8
+         new ArgsInvalidPOJO(list, '\0');
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test around5_
+         new ArgsInvalidPOJO(list, (byte)0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test around7_
+         new ArgsInvalidPOJO(list, (short)0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test around8_
+         new ArgsInvalidPOJO(list, 0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test after5
+         new ArgsInvalidPOJO(list, 0l);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test after7
+         new ArgsInvalidPOJO(list, (float) 0.0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test after8
+         new ArgsInvalidPOJO(list, 0.0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test throwing2
+         new ArgsInvalidPOJO(list, false, false);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test throwing7
+         new ArgsInvalidPOJO(list, false, '\0');
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test throwing8
+         new ArgsInvalidPOJO(list, false, (byte) 0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test finally5
+         new ArgsInvalidPOJO(list, false, (short) 0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test finally7
+         new ArgsInvalidPOJO(list, false, 0);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+      
+      thrown = false;
+      try
+      {
+         // test finally8
+         new ArgsInvalidPOJO(list, false, 0l);
+      }
+      catch(NoMatchingAdviceException e)
+      {
+         thrown = true;
+      }
+      assertTrue(thrown);
+   }
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgTestCase.java	2007-10-09 22:14:52 UTC (rev 65994)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgTestCase.java	2007-10-10 00:44:54 UTC (rev 65995)
@@ -517,4 +517,34 @@
       assertTrue(ArgAspectGenerics.finally4);
       assertTrue(ArgAspectGenerics.finally6);
    }
+   
+   public void testGenerics4()
+   {
+      new ArgsPOJO(new ArrayList<SuperValue>());
+      assertTrue(ArgAspectGenerics.before1);
+      assertTrue(ArgAspectGenerics.before2);
+      assertTrue(ArgAspectGenerics.before4);
+      assertTrue(ArgAspectGenerics.before5);
+      assertTrue(ArgAspectGenerics.before6);
+      assertTrue(ArgAspectGenerics.around1);
+      assertTrue(ArgAspectGenerics.around2);
+      assertTrue(ArgAspectGenerics.around3);
+      assertTrue(ArgAspectGenerics.around4);
+      assertTrue(ArgAspectGenerics.around6);
+      assertTrue(ArgAspectGenerics.after1);
+      assertTrue(ArgAspectGenerics.after2);
+      assertTrue(ArgAspectGenerics.after3);
+      assertTrue(ArgAspectGenerics.after4);
+      assertTrue(ArgAspectGenerics.after6);
+      assertFalse(ArgAspectGenerics.throwing1);
+      assertFalse(ArgAspectGenerics.throwing3);
+      assertFalse(ArgAspectGenerics.throwing4);
+      assertFalse(ArgAspectGenerics.throwing5);
+      assertFalse(ArgAspectGenerics.throwing6);
+      assertTrue(ArgAspectGenerics.finally1);
+      assertTrue(ArgAspectGenerics.finally2);
+      assertTrue(ArgAspectGenerics.finally3);
+      assertTrue(ArgAspectGenerics.finally4);
+      assertTrue(ArgAspectGenerics.finally6);
+   }
 }
\ No newline at end of file

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsInvalidPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsInvalidPOJO.java	2007-10-09 22:14:52 UTC (rev 65994)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsInvalidPOJO.java	2007-10-10 00:44:54 UTC (rev 65995)
@@ -76,6 +76,51 @@
    public List<SuperValue> field5Finally7;
    public List<SuperValue> field5Finally8;
    
+   public ArgsInvalidPOJO() {}
+   
+   // intercepted by advice ArgAspectGenerics.before7
+   public ArgsInvalidPOJO(List<SuperValue> arg1, boolean arg2){}
+
+   // intercepted by advice ArgAspectGenerics.before8
+   public ArgsInvalidPOJO(List<SuperValue> arg1, char arg2){}
+   
+   // intercepted by advice ArgAspectGenerics.around5_
+   public ArgsInvalidPOJO(List<SuperValue> arg1, byte arg2){}
+   
+   // intercepted by advice ArgAspectGenerics.around7_
+   public ArgsInvalidPOJO(List<SuperValue> arg1, short arg2){}
+   
+   // intercepted by advice ArgAspectGenerics.around8_
+   public ArgsInvalidPOJO(List<SuperValue> arg1, int arg2){}
+      
+   // intercepted by advice ArgAspectGenerics.after5
+   public ArgsInvalidPOJO(List<SuperValue> arg1, long arg2){}
+   
+   // intercepted by advice ArgAspectGenerics.after7
+   public ArgsInvalidPOJO(List<SuperValue> arg1, float arg2){}
+   
+   // intercepted by advice ArgAspectGenerics.after8
+   public ArgsInvalidPOJO(List<SuperValue> arg1, double arg2){}
+   
+   // intercepted by advice ArgAspectGenerics.throwing2
+   public ArgsInvalidPOJO(List<SuperValue> arg1, boolean arg2, boolean arg3){}
+   
+   // intercepted by advice ArgAspectGenerics.throwing7
+   public ArgsInvalidPOJO(List<SuperValue> arg1, boolean arg2, char arg3){}
+   
+   // intercepted by advice ArgAspectGenerics.throwing8
+   public ArgsInvalidPOJO(List<SuperValue> arg1, boolean arg2, byte arg3){}
+   
+   // intercepted by advice ArgAspectGenerics.finally5
+   public ArgsInvalidPOJO(List<SuperValue> arg1, boolean arg2, short arg3){}
+   
+   // intercepted by advice ArgAspectGenerics.finally7
+   public ArgsInvalidPOJO(List<SuperValue> arg1, boolean arg2, int arg3){}
+   
+   // intercepted by advice ArgAspectGenerics.finally8
+   public ArgsInvalidPOJO(List<SuperValue> arg1, boolean arg2, long arg3){}
+   
+      
    /* bunch1(int, double, float, String, int) */
    
    public int bunch1Around1(int x, double y, float z, String str, int q)

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsPOJO.java	2007-10-09 22:14:52 UTC (rev 65994)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/annotatedAdviceParams/ArgsPOJO.java	2007-10-10 00:44:54 UTC (rev 65995)
@@ -41,6 +41,10 @@
    
    public List<SuperValue> field5;
    
+   public ArgsPOJO() {}
+   
+   public ArgsPOJO(List<SuperValue> arg) {}
+   
    public int bunch1(int x, double y, float z, String str, int q)
    {
       return x + (int) y + (int) z + q;




More information about the jboss-cvs-commits mailing list