[jboss-cvs] JBossAS SVN: r61086 - in projects/aop/trunk/aop/src: test/org/jboss/test/aop/beforeafterArgs and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 5 12:49:14 EST 2007


Author: flavia.rainone at jboss.com
Date: 2007-03-05 12:49:14 -0500 (Mon, 05 Mar 2007)
New Revision: 61086

Modified:
   projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingAspect.java
Log:
[JBAOP-37] Overloaded throwing tests are complete (for @JoinPoint, @Thrown, @Arg and
@Args parameters; plus, this scenario contains interface hierarchy for @Arg parameters)

Modified: projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-03-05 15:51:18 UTC (rev 61085)
+++ projects/aop/trunk/aop/src/resources/test/beforeafterArgs/jboss-aop.xml	2007-03-05 17:49:14 UTC (rev 61086)
@@ -474,6 +474,39 @@
    
   	<bind pointcut="execution(org.jboss.test.aop.beforeafterArgs.OverloadedAdvicePOJO->new(org.jboss.test.aop.beforeafterArgs.SubInterface,org.jboss.test.aop.beforeafterArgs.Implementor))">
    	<throwing name="throwing1" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing2" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing3" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing4" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing5" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing6" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing7" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing8" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing9" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing10" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing11" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing12" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing13" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing14" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing15" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing16" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing17" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing18" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing19" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing20" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing21" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing22" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing23" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing24" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing25" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing26" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing27" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing28" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing29" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing30" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing31" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing32" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing33" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
+   	<throwing name="throwing34" aspect="org.jboss.test.aop.beforeafterArgs.OverloadedThrowingAspect"/>
   	</bind>
   	
   	<aspect class="org.jboss.test.aop.beforeafterArgs.OverloadedBeforeCallAspect" scope="PER_VM"/>

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java	2007-03-05 15:51:18 UTC (rev 61085)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedAdviceTestCase.java	2007-03-05 17:49:14 UTC (rev 61086)
@@ -59,10 +59,13 @@
       this.pojo = new OverloadedAdvicePOJO();
    }
 
-   public void test1()
+   public void testBefore()
    {
+      // clear all relevant aspect fields
       OverloadedBeforeAspect.clear();
+      // execute the join point
       pojo.text = "test2";
+      // check aspect fields
       assertEquals("FieldInfo,String", OverloadedBeforeAspect.before1);
       assertEquals("FieldInfo,Object", OverloadedBeforeAspect.before2);
       assertEquals("JoinPointInfo,String", OverloadedBeforeAspect.before3);
@@ -86,10 +89,13 @@
       
    }
    
-   public void test2()
+   public void testAround()
    {
+      // clear all relevant aspect fields
       OverloadedAroundAspect.clear();
+      // execute the join point
       pojo.method1(10, 15);
+      // check aspect fields
       assertEquals("defaultSignature", OverloadedAroundAspect.around1);
       assertEquals("MethodInvocation,int,long", OverloadedAroundAspect.around2);
       assertEquals("Invocation,int,long", OverloadedAroundAspect.around3);
@@ -115,52 +121,86 @@
       assertEquals("", OverloadedAroundAspect.around16);
    }
    
-   public void test3()
+   public void testAfter()
    {
+      // clear all relevant aspect fields
       OverloadedAfterAspect.clear();
+      // execute the join point
       pojo.method2(0, null);
-      assertEquals("Object,MethodInfo,SuperClass,float,SubValue", OverloadedAfterAspect.after1);
-      assertEquals("Object,MethodInfo,SuperClass,float,SuperValue", OverloadedAfterAspect.after2);
-      assertEquals("Object,MethodInfo,SuperClass,float,Object", OverloadedAfterAspect.after3);
-      assertEquals("Object,MethodInfo,Object,float,SubValue", OverloadedAfterAspect.after4);
-      assertEquals("Object,MethodInfo,Object,float,SuperValue", OverloadedAfterAspect.after5);
-      assertEquals("Object,MethodInfo,Object,float,Object", OverloadedAfterAspect.after6);
-      assertEquals("Object,JoinPointInfo,SuperClass,float,SubValue", OverloadedAfterAspect.after7);
-      assertEquals("SuperClass,MethodInfo,SuperClass,SubValue", OverloadedAfterAspect.after8);
-      assertEquals("Object,MethodInfo,SuperClass,float", OverloadedAfterAspect.after9);
-      assertEquals("Object,MethodInfo,SuperClass,SuperValue", OverloadedAfterAspect.after10);
-      assertEquals("SuperClass,MethodInfo,SuperClass,Object", OverloadedAfterAspect.after11);
-      assertEquals("SuperClass,MethodInfo,Object,SubValue", OverloadedAfterAspect.after12);
-      assertEquals("Object,MethodInfo,Object,float", OverloadedAfterAspect.after13);
-      assertEquals("SubClass,MethodInfo,Object,SuperValue", OverloadedAfterAspect.after14);
-      assertEquals("SubClass,MethodInfo,Object,Object", OverloadedAfterAspect.after15);
-      assertEquals("SuperClass,JoinPointInfo,SuperClass,SubValue", OverloadedAfterAspect.after16);
-      assertEquals("SubClass,JoinPointInfo,SuperClass,float", OverloadedAfterAspect.after17);
-      assertEquals("SubClass,JoinPointInfo,SuperClass,SuperValue", OverloadedAfterAspect.after18);
-      assertEquals("SuperClass,JoinPointInfo,SuperClass,Object", OverloadedAfterAspect.after19);
-      assertEquals("SubClass,Object,SuperClass,SubValue", OverloadedAfterAspect.after20);
+      // check aspect fields
+      assertEquals("Object,MethodInfo,SuperClass,float,SubValue",
+            OverloadedAfterAspect.after1);
+      assertEquals("Object,MethodInfo,SuperClass,float,SuperValue",
+            OverloadedAfterAspect.after2);
+      assertEquals("Object,MethodInfo,SuperClass,float,Object",
+            OverloadedAfterAspect.after3);
+      assertEquals("Object,MethodInfo,Object,float,SubValue",
+            OverloadedAfterAspect.after4);
+      assertEquals("Object,MethodInfo,Object,float,SuperValue",
+            OverloadedAfterAspect.after5);
+      assertEquals("Object,MethodInfo,Object,float,Object",
+            OverloadedAfterAspect.after6);
+      assertEquals("Object,JoinPointInfo,SuperClass,float,SubValue",
+            OverloadedAfterAspect.after7);
+      assertEquals("SuperClass,MethodInfo,SuperClass,SubValue",
+            OverloadedAfterAspect.after8);
+      assertEquals("Object,MethodInfo,SuperClass,float",
+            OverloadedAfterAspect.after9);
+      assertEquals("Object,MethodInfo,SuperClass,SuperValue",
+            OverloadedAfterAspect.after10);
+      assertEquals("SuperClass,MethodInfo,SuperClass,Object",
+            OverloadedAfterAspect.after11);
+      assertEquals("SuperClass,MethodInfo,Object,SubValue",
+            OverloadedAfterAspect.after12);
+      assertEquals("Object,MethodInfo,Object,float",
+            OverloadedAfterAspect.after13);
+      assertEquals("SubClass,MethodInfo,Object,SuperValue",
+            OverloadedAfterAspect.after14);
+      assertEquals("SubClass,MethodInfo,Object,Object",
+            OverloadedAfterAspect.after15);
+      assertEquals("SuperClass,JoinPointInfo,SuperClass,SubValue",
+            OverloadedAfterAspect.after16);
+      assertEquals("SubClass,JoinPointInfo,SuperClass,float",
+            OverloadedAfterAspect.after17);
+      assertEquals("SubClass,JoinPointInfo,SuperClass,SuperValue",
+            OverloadedAfterAspect.after18);
+      assertEquals("SuperClass,JoinPointInfo,SuperClass,Object",
+            OverloadedAfterAspect.after19);
+      assertEquals("SubClass,Object,SuperClass,SubValue",
+            OverloadedAfterAspect.after20);
       assertEquals("Object,Object,SuperClass,float", OverloadedAfterAspect.after21);
-      assertEquals("SubClass,Object,SuperClass,SuperValue", OverloadedAfterAspect.after22);
+      assertEquals("SubClass,Object,SuperClass,SuperValue",
+            OverloadedAfterAspect.after22);
       assertEquals("Object,Object,SuperClass,Object", OverloadedAfterAspect.after23);
-      assertEquals("Object,MethodInfo,SuperClass,Object[]", OverloadedAfterAspect.after24);
-      assertEquals("Object,MethodInfo,Object,Object[]", OverloadedAfterAspect.after25);
-      assertEquals("Object,JoinPointInfo,SuperClass,Object[]", OverloadedAfterAspect.after26);
-      assertEquals("Object,JoinPointInfo,Object,Object[]", OverloadedAfterAspect.after27);
-      assertEquals("Object,Object,SuperClass,Object[]", OverloadedAfterAspect.after28);
+      assertEquals("Object,MethodInfo,SuperClass,Object[]",
+            OverloadedAfterAspect.after24);
+      assertEquals("Object,MethodInfo,Object,Object[]",
+            OverloadedAfterAspect.after25);
+      assertEquals("Object,JoinPointInfo,SuperClass,Object[]",
+            OverloadedAfterAspect.after26);
+      assertEquals("Object,JoinPointInfo,Object,Object[]",
+            OverloadedAfterAspect.after27);
+      assertEquals("Object,Object,SuperClass,Object[]",
+            OverloadedAfterAspect.after28);
       assertEquals("Object,Object,Object,Object[]", OverloadedAfterAspect.after29);
       assertEquals("Object,MethodInfo,SuperClass", OverloadedAfterAspect.after30);
       assertEquals("Object,MethodInfo,Object", OverloadedAfterAspect.after31);
       assertEquals("Object,JoinPointInfo,SuperClass", OverloadedAfterAspect.after32);
-      assertEquals("Object,MethodInfo,float,SubValue", OverloadedAfterAspect.after33);
-      assertEquals("Object,MethodInfo,float,SuperValue", OverloadedAfterAspect.after34);
+      assertEquals("Object,MethodInfo,float,SubValue",
+            OverloadedAfterAspect.after33);
+      assertEquals("Object,MethodInfo,float,SuperValue",
+            OverloadedAfterAspect.after34);
       assertEquals("Object,MethodInfo,float,Object", OverloadedAfterAspect.after35);
-      assertEquals("Object,JoinPointInfo,float,SubValue", OverloadedAfterAspect.after36);
+      assertEquals("Object,JoinPointInfo,float,SubValue",
+            OverloadedAfterAspect.after36);
       assertEquals("SuperClass,MethodInfo,SubValue", OverloadedAfterAspect.after37);
       assertEquals("Object,MethodInfo,float", OverloadedAfterAspect.after38);
       assertEquals("Object,MethodInfo,SuperValue", OverloadedAfterAspect.after39);
-      assertEquals("SuperClass,JoinPointInfo,SubValue", OverloadedAfterAspect.after40);
+      assertEquals("SuperClass,JoinPointInfo,SubValue",
+            OverloadedAfterAspect.after40);
       assertEquals("SubClass,JoinPointInfo,float", OverloadedAfterAspect.after41);
-      assertEquals("SubClass,JoinPointInfo,SuperValue", OverloadedAfterAspect.after42);
+      assertEquals("SubClass,JoinPointInfo,SuperValue",
+            OverloadedAfterAspect.after42);
       assertEquals("SubClass,Object,SubValue", OverloadedAfterAspect.after43);
       assertEquals("Object,Object,float", OverloadedAfterAspect.after44);
       assertEquals("SubClass,Object,SuperValue", OverloadedAfterAspect.after45);
@@ -168,8 +208,10 @@
       assertEquals("SubClass,JoinPointInfo,Object[]", OverloadedAfterAspect.after47);
       assertEquals("Object,MethodInfo", OverloadedAfterAspect.after48);
       assertEquals("Object,JoinPointInfo", OverloadedAfterAspect.after49);
-      assertEquals("Object,SuperClass,float,SubValue", OverloadedAfterAspect.after50);
-      assertEquals("Object,SuperClass,float,SuperValue", OverloadedAfterAspect.after51);
+      assertEquals("Object,SuperClass,float,SubValue",
+            OverloadedAfterAspect.after50);
+      assertEquals("Object,SuperClass,float,SuperValue",
+            OverloadedAfterAspect.after51);
       assertEquals("Object,SuperClass,float,Object", OverloadedAfterAspect.after52);
       assertEquals("SuperClass,SuperClass,float", OverloadedAfterAspect.after53);
       assertEquals("Object,SuperClass,SubValue", OverloadedAfterAspect.after54);
@@ -187,19 +229,202 @@
       assertEquals("void", OverloadedAfterAspect.after66);
    }
    
-   public void test4()
+   public void testAfterThrowing()
    {
+      // clear all relevant aspect fields
+      OverloadedThrowingAspect.clear();
+      // execute the join point
       try
       {
          new OverloadedAdvicePOJO(null, null);
       } catch (POJOException pe) {}
+      
+      // check aspect fields
+      
       assertEquals("JoinPointInfo,Throwable,SubInterface,Implementor",
             OverloadedThrowingAspect.throwing1);
+      
+      assertTrue(OverloadedThrowingAspect.throwing2.startsWith(
+            "JoinPointInfo,Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing2.equals(
+            "JoinPointInfo,Throwable,Interface,Implementor") ||
+            OverloadedThrowingAspect.throwing2.equals(
+            "JoinPointInfo,Throwable,SubInterface,SubInterface") ||
+            OverloadedThrowingAspect.throwing2.equals(
+            "JoinPointInfo,Throwable,SubInterface,Object"));
+      
+      assertTrue(OverloadedThrowingAspect.throwing3.startsWith(
+            "JoinPointInfo,Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing3.equals(  
+            "JoinPointInfo,Throwable,SuperInterface,Implementor") ||
+            OverloadedThrowingAspect.throwing3.equals(
+            "JoinPointInfo,Throwable,SubInterface,Interface") ||
+            OverloadedThrowingAspect.throwing3.equals(
+            "JoinPointInfo,Throwable,Interface,SubInterface"));
+      
+      assertTrue(OverloadedThrowingAspect.throwing4.startsWith(
+            "JoinPointInfo,Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing4.equals(
+            "JoinPointInfo,Throwable,SuperInterface,SubInterface") ||
+            OverloadedThrowingAspect.throwing4.equals(
+            "JoinPointInfo,Throwable,SuperInterface,Object") ||
+            OverloadedThrowingAspect.throwing4.equals(
+            "JoinPointInfo,Throwable,Interface,Interface") ||
+            OverloadedThrowingAspect.throwing4.equals(
+            "JoinPointInfo,Throwable,SubInterface,SuperInterface"));
+      
+      assertTrue(OverloadedThrowingAspect.throwing5.startsWith(
+            "JoinPointInfo,Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing5.equals(
+            "JoinPointInfo,Throwable,SuperInterface,Interface") ||
+            OverloadedThrowingAspect.throwing5.equals(
+            "JoinPointInfo,Throwable,Interface,SuperInterface"));
+      
+      assertEquals("JoinPointInfo,Throwable,SuperInterface,SuperInterface",
+            OverloadedThrowingAspect.throwing6);
+      
+      assertEquals("JoinPointInfo,Object,SubInterface,Implementor",
+            OverloadedThrowingAspect.throwing7);
+      
+      assertTrue(OverloadedThrowingAspect.throwing8.startsWith(
+            "JoinPointInfo,Object,"));
+      assertTrue(OverloadedThrowingAspect.throwing8.equals(
+            "JoinPointInfo,Object,Interface,Implementor") ||
+            OverloadedThrowingAspect.throwing8.equals(
+            "JoinPointInfo,Object,SubInterface,SubInterface") ||
+            OverloadedThrowingAspect.throwing8.equals(
+            "JoinPointInfo,Object,SubInterface,Object"));
+
+      assertTrue(OverloadedThrowingAspect.throwing9.startsWith(
+            "JoinPointInfo,Object,"));
+      assertTrue(OverloadedThrowingAspect.throwing9.equals(  
+            "JoinPointInfo,Object,SuperInterface,Implementor") ||
+            OverloadedThrowingAspect.throwing9.equals(
+            "JoinPointInfo,Object,SubInterface,Interface") ||
+            OverloadedThrowingAspect.throwing9.equals(
+            "JoinPointInfo,Object,Interface,SubInterface"));
+
+      assertTrue(OverloadedThrowingAspect.throwing10.startsWith(
+            "JoinPointInfo,Object,"));
+      assertTrue(OverloadedThrowingAspect.throwing10.equals(
+            "JoinPointInfo,Object,SuperInterface,SubInterface") ||
+            OverloadedThrowingAspect.throwing10.equals(
+            "JoinPointInfo,Object,SuperInterface,Object") ||
+            OverloadedThrowingAspect.throwing10.equals(
+            "JoinPointInfo,Object,Interface,Interface") ||
+            OverloadedThrowingAspect.throwing10.equals(
+            "JoinPointInfo,Object,SubInterface,SuperInterface"));
+      
+      assertTrue(OverloadedThrowingAspect.throwing11.startsWith(
+            "JoinPointInfo,Object,"));
+      assertTrue(OverloadedThrowingAspect.throwing11.equals(
+            "JoinPointInfo,Object,SuperInterface,Interface") ||
+            OverloadedThrowingAspect.throwing11.equals(
+            "JoinPointInfo,Object,Interface,SuperInterface"));
+
+      assertEquals("JoinPointInfo,Object,SuperInterface,SuperInterface",
+               OverloadedThrowingAspect.throwing12);
+      
+      assertTrue(OverloadedThrowingAspect.throwing13.startsWith(
+            "JoinPointInfo,Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing13.equals(
+            "JoinPointInfo,Throwable,SubInterface") ||
+            OverloadedThrowingAspect.throwing13.equals(
+            "JoinPointInfo,Throwable,Implementor"));
+      
+      assertTrue(OverloadedThrowingAspect.throwing14.startsWith(
+            "JoinPointInfo,Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing14.equals(
+            "JoinPointInfo,Throwable,Interface") ||
+            OverloadedThrowingAspect.throwing14.equals(
+            "JoinPointInfo,Throwable,Object"));
+      
+      assertEquals("JoinPointInfo,Throwable,SuperInterface",
+            OverloadedThrowingAspect.throwing15);
+      
+      assertEquals("JoinPointInfo,Throwable,Object[]",
+            OverloadedThrowingAspect.throwing16);
+      
+      assertEquals("JoinPointInfo,Object,Object[]",
+            OverloadedThrowingAspect.throwing17);
+      
+      assertEquals("Throwable,SubInterface,Implementor",
+            OverloadedThrowingAspect.throwing18);
+      
+      assertTrue(OverloadedThrowingAspect.throwing19.startsWith("Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing19.equals(
+            "Throwable,Interface,Implementor") ||
+            OverloadedThrowingAspect.throwing19.equals(
+            "Throwable,SubInterface,SubInterface") ||
+            OverloadedThrowingAspect.throwing19.equals(
+            "Throwable,SubInterface,Object"));
+      
+      assertTrue(OverloadedThrowingAspect.throwing20.startsWith("Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing20.equals(  
+            "Throwable,SuperInterface,Implementor") ||
+            OverloadedThrowingAspect.throwing20.equals(
+            "Throwable,SubInterface,Interface") ||
+            OverloadedThrowingAspect.throwing20.equals(
+            "Throwable,Interface,SubInterface"));
+      
+      assertTrue(OverloadedThrowingAspect.throwing21.startsWith("Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing21.equals(
+            "Throwable,SuperInterface,SubInterface") ||
+            OverloadedThrowingAspect.throwing21.equals(
+            "Throwable,SuperInterface,Object") ||
+            OverloadedThrowingAspect.throwing21.equals(
+            "Throwable,Interface,Interface") ||
+            OverloadedThrowingAspect.throwing21.equals(
+            "Throwable,SubInterface,SuperInterface"));
+
+      assertTrue(OverloadedThrowingAspect.throwing22.startsWith("Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing22.equals(
+            "Throwable,SuperInterface,Interface") ||
+            OverloadedThrowingAspect.throwing22.equals(
+            "Throwable,Interface,SuperInterface"));
+
+      assertEquals("Throwable,SuperInterface,SuperInterface",
+            OverloadedThrowingAspect.throwing23);
+
+      assertEquals("Object,SubInterface,Implementor",
+            OverloadedThrowingAspect.throwing24);
+      
+      assertTrue(OverloadedThrowingAspect.throwing25.startsWith("Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing25.equals("Throwable,SubInterface")
+            || OverloadedThrowingAspect.throwing25.equals("Throwable,Implementor"));
+
+      assertTrue(OverloadedThrowingAspect.throwing26.startsWith("Throwable,"));
+      assertTrue(OverloadedThrowingAspect.throwing26.equals("Throwable,Interface") ||
+         OverloadedThrowingAspect.throwing26.equals("Throwable,Object"));
+
+      assertEquals("Throwable,SuperInterface", OverloadedThrowingAspect.throwing27);
+      
+      assertTrue(OverloadedThrowingAspect.throwing28.startsWith("Object,"));
+      assertTrue(OverloadedThrowingAspect.throwing28.equals("Object,SubInterface")
+            || OverloadedThrowingAspect.throwing28.equals("Object,Implementor"));
+
+      assertTrue(OverloadedThrowingAspect.throwing29.startsWith("Object,"));
+      assertTrue(OverloadedThrowingAspect.throwing29.equals("Object,Interface") ||
+         OverloadedThrowingAspect.throwing29.equals("Object,Object"));
+
+      assertEquals("Object,SuperInterface", OverloadedThrowingAspect.throwing30);
+      
+      assertEquals("Throwable,Object[]", OverloadedThrowingAspect.throwing31);
+      
+      assertEquals("Object,Object[]", OverloadedThrowingAspect.throwing32);
+      
+      assertEquals("Throwable", OverloadedThrowingAspect.throwing33);
+      
+      assertEquals("Object", OverloadedThrowingAspect.throwing34);
    }
    
-   public void test5()
+   public void testBeforeCall()
    {
+      // clear all relevant aspect fields
+      OverloadedBeforeCallAspect.clear();
+      // execute the join point
       (new OverloadedAdvicePOJOCaller()).callMethod3(pojo);
+      // check aspect fields
       assertEquals(
             "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
             OverloadedBeforeCallAspect.before1);
@@ -282,9 +507,13 @@
       assertEquals("Object[]", OverloadedBeforeCallAspect.before45);
    }
    
-   public void test6()
+   public void testAroundCall()
    {
+      // clear all relevant aspect fields
+      OverloadedAroundCallAspect.clear();
+      // execute the join point
       (new OverloadedAdvicePOJOCaller()).callMethod3(pojo);
+      // check aspect fields
       assertEquals("defaultSignature", OverloadedAroundCallAspect.around1);
       assertEquals(
             "MethodCalledByMethodInvocation,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
@@ -376,64 +605,111 @@
       assertEquals("Object[]", OverloadedAroundCallAspect.around46);
    }
    
-   public void test7()
+   public void testAfterCall()
    {
+      // clear all relevant aspect fields
+      OverloadedAfterCallAspect.clear();
+      // execute the join point
       (new OverloadedAdvicePOJOCaller()).callMethod3(pojo);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after1);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after2);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after3);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after4);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after5);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long,int", OverloadedAfterCallAspect.after6);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]", OverloadedAfterCallAspect.after7);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long", OverloadedAfterCallAspect.after8);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,int", OverloadedAfterCallAspect.after9);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO", OverloadedAfterCallAspect.after10);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after11);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after12);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after13);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after14);
-      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after15);
+      // check aspect fields
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int",
+            OverloadedAfterCallAspect.after1);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]",
+            OverloadedAfterCallAspect.after2);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long",
+            OverloadedAfterCallAspect.after3);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
+            OverloadedAfterCallAspect.after4);
+      assertEquals(
+            "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller",
+            OverloadedAfterCallAspect.after5);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long,int",
+            OverloadedAfterCallAspect.after6);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long,Object[]",
+            OverloadedAfterCallAspect.after7);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,long",
+            OverloadedAfterCallAspect.after8);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO,int",
+            OverloadedAfterCallAspect.after9);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJO",
+            OverloadedAfterCallAspect.after10);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,int",
+            OverloadedAfterCallAspect.after11);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long,Object[]",
+            OverloadedAfterCallAspect.after12);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,long",
+            OverloadedAfterCallAspect.after13);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller,int",
+            OverloadedAfterCallAspect.after14);
+      assertEquals("MethodByMethodInfo,OverloadedAdvicePOJOCaller",
+            OverloadedAfterCallAspect.after15);
       assertEquals("MethodByMethodInfo,long,int", OverloadedAfterCallAspect.after16);
-      assertEquals("MethodByMethodInfo,long,Object[]", OverloadedAfterCallAspect.after17);
+      assertEquals("MethodByMethodInfo,long,Object[]",
+            OverloadedAfterCallAspect.after17);
       assertEquals("MethodByMethodInfo,long", OverloadedAfterCallAspect.after18);
       assertEquals("MethodByMethodInfo,int", OverloadedAfterCallAspect.after19);
       assertEquals("MethodByMethodInfo", OverloadedAfterCallAspect.after20);
-      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after21);
-      assertEquals("OverloadedAdvicePOJO,SuperClass,long,int", OverloadedAfterCallAspect.after22);
-      assertEquals("Object,OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after23);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,int",
+            OverloadedAfterCallAspect.after21);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,long,int",
+            OverloadedAfterCallAspect.after22);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,long,int",
+            OverloadedAfterCallAspect.after23);
       assertEquals("Object,SuperClass,long,int", OverloadedAfterCallAspect.after24);
-      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after25);
-      assertEquals("OverloadedAdvicePOJO,SuperClass,long,Object[]", OverloadedAfterCallAspect.after26);
-      assertEquals("Object,OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after27);
-      assertEquals("Object,SuperClass,long,Object[]", OverloadedAfterCallAspect.after28);
-      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after29);
-      assertEquals("OverloadedAdvicePOJO,SuperClass,long", OverloadedAfterCallAspect.after30);
-      assertEquals("Object,OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after31);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long,Object[]",
+            OverloadedAfterCallAspect.after25);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,long,Object[]",
+            OverloadedAfterCallAspect.after26);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,long,Object[]",
+            OverloadedAfterCallAspect.after27);
+      assertEquals("Object,SuperClass,long,Object[]",
+            OverloadedAfterCallAspect.after28);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,long",
+            OverloadedAfterCallAspect.after29);
+      assertEquals("OverloadedAdvicePOJO,SuperClass,long",
+            OverloadedAfterCallAspect.after30);
+      assertEquals("Object,OverloadedAdvicePOJOCaller,long",
+            OverloadedAfterCallAspect.after31);
       assertEquals("Object,SuperClass,long", OverloadedAfterCallAspect.after32);
-      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after33);
-      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after34);
-      assertEquals("OverloadedAdvicePOJO,long,int", OverloadedAfterCallAspect.after35);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,int",
+            OverloadedAfterCallAspect.after33);
+      assertEquals("OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller",
+            OverloadedAfterCallAspect.after34);
+      assertEquals("OverloadedAdvicePOJO,long,int",
+            OverloadedAfterCallAspect.after35);
       assertEquals("Object,long,int", OverloadedAfterCallAspect.after36);
-      assertEquals("OverloadedAdvicePOJO,long,Object[]", OverloadedAfterCallAspect.after37);
+      assertEquals("OverloadedAdvicePOJO,long,Object[]",
+            OverloadedAfterCallAspect.after37);
       assertEquals("Object,long,Object[]", OverloadedAfterCallAspect.after38);
       assertEquals("OverloadedAdvicePOJO,long", OverloadedAfterCallAspect.after39);
       assertEquals("Object,long", OverloadedAfterCallAspect.after40);
       assertEquals("OverloadedAdvicePOJO,int", OverloadedAfterCallAspect.after41);
       assertEquals("OverloadedAdvicePOJO", OverloadedAfterCallAspect.after42);
-      assertEquals("OverloadedAdvicePOJOCaller,long,int", OverloadedAfterCallAspect.after43);
+      assertEquals("OverloadedAdvicePOJOCaller,long,int",
+            OverloadedAfterCallAspect.after43);
       assertEquals("SuperClass,long,int", OverloadedAfterCallAspect.after44);
-      assertEquals("OverloadedAdvicePOJOCaller,long,Object[]", OverloadedAfterCallAspect.after45);
+      assertEquals("OverloadedAdvicePOJOCaller,long,Object[]",
+            OverloadedAfterCallAspect.after45);
       assertEquals("SuperClass,long,Object[]", OverloadedAfterCallAspect.after46);
-      assertEquals("OverloadedAdvicePOJOCaller,long", OverloadedAfterCallAspect.after47);
+      assertEquals("OverloadedAdvicePOJOCaller,long",
+            OverloadedAfterCallAspect.after47);
       assertEquals("SuperClass,long", OverloadedAfterCallAspect.after48);
-      assertEquals("OverloadedAdvicePOJOCaller,int", OverloadedAfterCallAspect.after49);
+      assertEquals("OverloadedAdvicePOJOCaller,int",
+            OverloadedAfterCallAspect.after49);
       assertEquals("OverloadedAdvicePOJOCaller", OverloadedAfterCallAspect.after50);
    }
    
-   public void test8()
+   public void testAfterCallThrowing()
    {
+      // clear all relevant aspect fields
+      OverloadedThrowingCallAspect.clear();
+      // execute the join point
       (new OverloadedAdvicePOJOCaller()).callMethod4(pojo);
+      // check aspect fields
       assertEquals(
             "MethodByMethodInfo,OverloadedAdvicePOJO,OverloadedAdvicePOJOCaller,Throwable,boolean",
             OverloadedThrowingCallAspect.throwing1);

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingAspect.java	2007-03-05 15:51:18 UTC (rev 61085)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/beforeafterArgs/OverloadedThrowingAspect.java	2007-03-05 17:49:14 UTC (rev 61086)
@@ -21,6 +21,8 @@
  */
 package org.jboss.test.aop.beforeafterArgs;
 
+import junit.framework.Assert;
+
 import org.jboss.aop.JoinPointInfo;
 import org.jboss.aop.advice.annotation.Arg;
 import org.jboss.aop.advice.annotation.Args;
@@ -38,10 +40,76 @@
 public class OverloadedThrowingAspect
 {
    static String throwing1 = null;
+   static String throwing2 = null;
+   static String throwing3 = null;
+   static String throwing4 = null;
+   static String throwing5 = null;
+   static String throwing6 = null;
+   static String throwing7 = null;
+   static String throwing8 = null;
+   static String throwing9 = null;
+   static String throwing10 = null;
+   static String throwing11 = null;
+   static String throwing12 = null;
+   static String throwing13 = null;
+   static String throwing14 = null;
+   static String throwing15 = null;
+   static String throwing16 = null;
+   static String throwing17 = null;
+   static String throwing18 = null;
+   static String throwing19 = null;
+   static String throwing20 = null;
+   static String throwing21 = null;
+   static String throwing22 = null;
+   static String throwing23 = null;
+   static String throwing24 = null;
+   static String throwing25 = null;
+   static String throwing26 = null;
+   static String throwing27 = null;
+   static String throwing28 = null;
+   static String throwing29 = null;
+   static String throwing30 = null;
+   static String throwing31 = null;
+   static String throwing32 = null;
+   static String throwing33 = null;
+   static String throwing34 = null;
    
    static void clear()
    {
       throwing1 = null;
+      throwing2 = null;
+      throwing3 = null;
+      throwing4 = null;
+      throwing5 = null;
+      throwing6 = null;
+      throwing7 = null;
+      throwing8 = null;
+      throwing9 = null;
+      throwing10 = null;
+      throwing11 = null;
+      throwing12 = null;
+      throwing13 = null;
+      throwing14 = null;
+      throwing15 = null;
+      throwing16 = null;
+      throwing17 = null;
+      throwing18 = null;
+      throwing19 = null;
+      throwing20 = null;
+      throwing21 = null;
+      throwing22 = null;
+      throwing23 = null;
+      throwing24 = null;
+      throwing25 = null;
+      throwing26 = null;
+      throwing27 = null;
+      throwing28 = null;
+      throwing29 = null;
+      throwing30 = null;
+      throwing31 = null;
+      throwing32 = null;
+      throwing33 = null;
+      throwing34 = null;
    }
 
    /* THROWING1 ADVICE */
@@ -422,4 +490,5474 @@
    {
       throwing1 = "Object";
    }
+   
+   public void throwing1(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING2 ADVICE */
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Interface,Implementor";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SubInterface,Object";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SuperInterface,SubInterface";
+   }
+
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Interface,Interface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Implementor arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SubInterface,Implementor";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,Interface,Implementor";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SubInterface,SubInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SubInterface,Object";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing2 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing2 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing2(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing2(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing2(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing2 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing2 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing2 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing2 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing2 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing2 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing2 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing2 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing2 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing2 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing2 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing2 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing2(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing2 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing2 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing2 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing2 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing2 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing2(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing2 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing2(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing2 = "Throwable,Implementor";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing2 = "Throwable,SubInterface";
+   }
+
+   public void throwing2(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing2 = "Throwable,Object";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing2 = "Throwable,Interface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing2 = "Throwable,SuperInterface";
+   }
+
+   public void throwing2(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing2 = "Object,Implementor";
+   }
+      
+   public void throwing2(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing2 = "Object,SubInterface";
+   }
+
+   public void throwing2(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing2 = "Object,Object";
+   }
+   
+   public void throwing2(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing2 = "Object,Interface";
+   }
+
+   public void throwing2(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing2 = "Object,SuperInterface";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing2 = "Throwable,Object[]";
+   }
+   
+   public void throwing2(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing2 = "Object,Object[]";
+   }
+   
+   public void throwing2(@Thrown Throwable thrown)
+   {
+      throwing2 = "Throwable";
+   }
+   
+   public void throwing2(@Thrown Object thrown)
+   {
+      throwing2 = "Object";
+   }
+   
+   public void throwing2(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING3 ADVICE */
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SuperInterface,SubInterface";
+   }
+
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,Interface,Interface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Implementor arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SubInterface,Implementor";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,Interface,Implementor";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SubInterface,SubInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SubInterface,Object";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing3 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing3 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing3(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing3 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing3(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing3 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing3(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing3 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing3 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing3 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing3 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing3 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing3 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing3 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing3 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing3 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing3 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing3 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing3 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing3(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing3 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing3 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing3 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing3 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing3 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing3(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing3 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing3(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing3 = "Throwable,Implementor";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing3 = "Throwable,SubInterface";
+   }
+
+   public void throwing3(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing3 = "Throwable,Object";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing3 = "Throwable,Interface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing3 = "Throwable,SuperInterface";
+   }
+
+   public void throwing3(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing3 = "Object,Implementor";
+   }
+      
+   public void throwing3(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing3 = "Object,SubInterface";
+   }
+
+   public void throwing3(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing3 = "Object,Object";
+   }
+   
+   public void throwing3(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing3 = "Object,Interface";
+   }
+
+   public void throwing3(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing3 = "Object,SuperInterface";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing3 = "Throwable,Object[]";
+   }
+   
+   public void throwing3(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing3 = "Object,Object[]";
+   }
+   
+   public void throwing3(@Thrown Throwable thrown)
+   {
+      throwing3 = "Throwable";
+   }
+   
+   public void throwing3(@Thrown Object thrown)
+   {
+      throwing3 = "Object";
+   }
+   
+   public void throwing3(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING4 ADVICE */
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,SuperInterface,SubInterface";
+   }
+
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,Interface,Interface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Implementor arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SubInterface,Implementor";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,Interface,Implementor";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SubInterface,SubInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SubInterface,Object";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing4 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing4 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing4 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing4(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing4 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing4(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing4 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing4(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing4 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing4 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing4 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing4 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing4 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing4 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing4 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing4 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing4 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing4 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing4 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing4 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing4(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing4 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing4 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing4 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing4 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing4 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing4(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing4 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing4(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing4 = "Throwable,Implementor";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing4 = "Throwable,SubInterface";
+   }
+
+   public void throwing4(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing4 = "Throwable,Object";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing4 = "Throwable,Interface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing4 = "Throwable,SuperInterface";
+   }
+
+   public void throwing4(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing4 = "Object,Implementor";
+   }
+      
+   public void throwing4(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing4 = "Object,SubInterface";
+   }
+
+   public void throwing4(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing4 = "Object,Object";
+   }
+   
+   public void throwing4(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing4 = "Object,Interface";
+   }
+
+   public void throwing4(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing4 = "Object,SuperInterface";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing4 = "Throwable,Object[]";
+   }
+   
+   public void throwing4(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing4 = "Object,Object[]";
+   }
+   
+   public void throwing4(@Thrown Throwable thrown)
+   {
+      throwing4 = "Throwable";
+   }
+   
+   public void throwing4(@Thrown Object thrown)
+   {
+      throwing4 = "Object";
+   }
+   
+   public void throwing4(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING5 ADVICE */
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing5 = "JoinPointInfo,Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Implementor arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SubInterface,Implementor";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,Interface,Implementor";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SubInterface,SubInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SubInterface,Object";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing5 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing5 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing5 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing5(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing5 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing5 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing5(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing5 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing5(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing5 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing5 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing5 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing5 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing5 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing5 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing5 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing5 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing5 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing5 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing5 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing5 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing5(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing5 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing5 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing5 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing5 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing5 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing5(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing5 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing5(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing5 = "Throwable,Implementor";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing5 = "Throwable,SubInterface";
+   }
+
+   public void throwing5(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing5 = "Throwable,Object";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing5 = "Throwable,Interface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing5 = "Throwable,SuperInterface";
+   }
+
+   public void throwing5(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing5 = "Object,Implementor";
+   }
+      
+   public void throwing5(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing5 = "Object,SubInterface";
+   }
+
+   public void throwing5(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing5 = "Object,Object";
+   }
+   
+   public void throwing5(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing5 = "Object,Interface";
+   }
+
+   public void throwing5(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing5 = "Object,SuperInterface";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing5 = "Throwable,Object[]";
+   }
+   
+   public void throwing5(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing5 = "Object,Object[]";
+   }
+   
+   public void throwing5(@Thrown Throwable thrown)
+   {
+      throwing5 = "Throwable";
+   }
+   
+   public void throwing5(@Thrown Object thrown)
+   {
+      throwing5 = "Object";
+   }
+   
+   public void throwing5(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING6 ADVICE */
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing6 = "JoinPointInfo,Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Implementor arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SubInterface,Implementor";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,Interface,Implementor";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SubInterface,SubInterface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SubInterface,Object";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing6 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing6 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing6 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing6(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing6 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing6 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing6(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing6 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing6(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing6 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing6 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing6 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing6 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing6 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing6 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing6 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing6 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing6 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing6 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing6 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing6 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing6(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing6 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing6 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing6 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing6 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing6 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing6(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing6 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing6(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing6 = "Throwable,Implementor";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing6 = "Throwable,SubInterface";
+   }
+
+   public void throwing6(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing6 = "Throwable,Object";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing6 = "Throwable,Interface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing6 = "Throwable,SuperInterface";
+   }
+
+   public void throwing6(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing6 = "Object,Implementor";
+   }
+      
+   public void throwing6(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing6 = "Object,SubInterface";
+   }
+
+   public void throwing6(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing6 = "Object,Object";
+   }
+   
+   public void throwing6(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing6 = "Object,Interface";
+   }
+
+   public void throwing6(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing6 = "Object,SuperInterface";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing6 = "Throwable,Object[]";
+   }
+   
+   public void throwing6(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing6 = "Object,Object[]";
+   }
+   
+   public void throwing6(@Thrown Throwable thrown)
+   {
+      throwing6 = "Throwable";
+   }
+   
+   public void throwing6(@Thrown Object thrown)
+   {
+      throwing6 = "Object";
+   }
+   
+   public void throwing6(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING7 ADVICE */
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Implementor arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SubInterface,Implementor";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,Interface,Implementor";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SubInterface,SubInterface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SubInterface,Object";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing7 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing7 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing7 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing7(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing7 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing7 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing7(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing7 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing7(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing7 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing7 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing7 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing7 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing7 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing7 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing7 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing7 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing7 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing7 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing7 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing7 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing7(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing7 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing7 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing7 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing7 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing7 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing7(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing7 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing7(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing7 = "Throwable,Implementor";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing7 = "Throwable,SubInterface";
+   }
+
+   public void throwing7(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing7 = "Throwable,Object";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing7 = "Throwable,Interface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing7 = "Throwable,SuperInterface";
+   }
+
+   public void throwing7(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing7 = "Object,Implementor";
+   }
+      
+   public void throwing7(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing7 = "Object,SubInterface";
+   }
+
+   public void throwing7(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing7 = "Object,Object";
+   }
+   
+   public void throwing7(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing7 = "Object,Interface";
+   }
+
+   public void throwing7(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing7 = "Object,SuperInterface";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing7 = "Throwable,Object[]";
+   }
+   
+   public void throwing7(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing7 = "Object,Object[]";
+   }
+   
+   public void throwing7(@Thrown Throwable thrown)
+   {
+      throwing7 = "Throwable";
+   }
+   
+   public void throwing7(@Thrown Object thrown)
+   {
+      throwing7 = "Object";
+   }
+   
+   public void throwing7(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING8 ADVICE */
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Implementor arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,Interface,Implementor";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg SubInterface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SubInterface,SubInterface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Object arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SubInterface,Object";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing8 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing8 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing8 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing8(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing8 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing8 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing8(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing8 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing8(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing8 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing8 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing8 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing8 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing8 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing8 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing8 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing8 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing8 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing8 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing8 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing8 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing8(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing8 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing8 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing8 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing8 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing8 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing8(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing8 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing8(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing8 = "Throwable,Implementor";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing8 = "Throwable,SubInterface";
+   }
+
+   public void throwing8(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing8 = "Throwable,Object";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing8 = "Throwable,Interface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing8 = "Throwable,SuperInterface";
+   }
+
+   public void throwing8(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing8 = "Object,Implementor";
+   }
+      
+   public void throwing8(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing8 = "Object,SubInterface";
+   }
+
+   public void throwing8(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing8 = "Object,Object";
+   }
+   
+   public void throwing8(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing8 = "Object,Interface";
+   }
+
+   public void throwing8(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing8 = "Object,SuperInterface";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing8 = "Throwable,Object[]";
+   }
+   
+   public void throwing8(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing8 = "Object,Object[]";
+   }
+   
+   public void throwing8(@Thrown Throwable thrown)
+   {
+      throwing8 = "Throwable";
+   }
+   
+   public void throwing8(@Thrown Object thrown)
+   {
+      throwing8 = "Object";
+   }
+   
+   public void throwing8(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING9 ADVICE */
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing9 = "JoinPointInfo,Object,SuperInterface,Implementor";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, @Arg Interface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,SubInterface,Interface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SubInterface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,Interface,SubInterface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing9 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing9 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing9(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing9 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing9 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing9(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing9 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing9(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing9 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing9 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing9 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing9 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing9 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing9 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing9 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing9 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing9 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing9 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing9 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing9 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing9(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing9 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing9 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing9 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing9 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing9 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing9(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing9 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing9(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing9 = "Throwable,Implementor";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing9 = "Throwable,SubInterface";
+   }
+
+   public void throwing9(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing9 = "Throwable,Object";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing9 = "Throwable,Interface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing9 = "Throwable,SuperInterface";
+   }
+
+   public void throwing9(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing9 = "Object,Implementor";
+   }
+      
+   public void throwing9(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing9 = "Object,SubInterface";
+   }
+
+   public void throwing9(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing9 = "Object,Object";
+   }
+   
+   public void throwing9(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing9 = "Object,Interface";
+   }
+
+   public void throwing9(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing9 = "Object,SuperInterface";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing9 = "Throwable,Object[]";
+   }
+   
+   public void throwing9(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing9 = "Object,Object[]";
+   }
+   
+   public void throwing9(@Thrown Throwable thrown)
+   {
+      throwing9 = "Throwable";
+   }
+   
+   public void throwing9(@Thrown Object thrown)
+   {
+      throwing9 = "Object";
+   }
+   
+   public void throwing9(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING10 ADVICE */
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing10 = "JoinPointInfo,Object,SuperInterface,SubInterface";
+   }
+
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Object arg2)
+   {
+      throwing10 = "JoinPointInfo,Object,SuperInterface,Object";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg Interface arg2)
+   {
+      throwing10 = "JoinPointInfo,Object,Interface,Interface";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing10 = "JoinPointInfo,Object,SubInterface,SuperInterface";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing10 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing10 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing10 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing10 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing10(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing10 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing10 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing10(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing10 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing10(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing10 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing10 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing10 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing10 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing10 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing10 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing10 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing10 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing10 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing10 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing10 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing10 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing10(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing10 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing10 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing10 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing10 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing10 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing10(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing10 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing10(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing10 = "Throwable,Implementor";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing10 = "Throwable,SubInterface";
+   }
+
+   public void throwing10(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing10 = "Throwable,Object";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing10 = "Throwable,Interface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing10 = "Throwable,SuperInterface";
+   }
+
+   public void throwing10(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing10 = "Object,Implementor";
+   }
+      
+   public void throwing10(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing10 = "Object,SubInterface";
+   }
+
+   public void throwing10(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing10 = "Object,Object";
+   }
+   
+   public void throwing10(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing10 = "Object,Interface";
+   }
+
+   public void throwing10(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing10 = "Object,SuperInterface";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing10 = "Throwable,Object[]";
+   }
+   
+   public void throwing10(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing10 = "Object,Object[]";
+   }
+   
+   public void throwing10(@Thrown Throwable thrown)
+   {
+      throwing10 = "Throwable";
+   }
+   
+   public void throwing10(@Thrown Object thrown)
+   {
+      throwing10 = "Object";
+   }
+   
+   public void throwing10(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING11 ADVICE */
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, @Arg Interface arg2)
+   {
+      throwing11 = "JoinPointInfo,Object,SuperInterface,Interface";
+   }
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg Interface arg1, @Arg SuperInterface arg2)
+   {
+      throwing11 = "JoinPointInfo,Object,Interface,SuperInterface";
+   }
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing11 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing11 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing11(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing11 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing11 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing11(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing11 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing11(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing11 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing11 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing11 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing11 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing11 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing11 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing11 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing11 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing11 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing11 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing11 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing11 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing11(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing11 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing11 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing11 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing11 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing11 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing11(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing11 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing11(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing11 = "Throwable,Implementor";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing11 = "Throwable,SubInterface";
+   }
+
+   public void throwing11(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing11 = "Throwable,Object";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing11 = "Throwable,Interface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing11 = "Throwable,SuperInterface";
+   }
+
+   public void throwing11(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing11 = "Object,Implementor";
+   }
+      
+   public void throwing11(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing11 = "Object,SubInterface";
+   }
+
+   public void throwing11(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing11 = "Object,Object";
+   }
+   
+   public void throwing11(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing11 = "Object,Interface";
+   }
+
+   public void throwing11(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing11 = "Object,SuperInterface";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing11 = "Throwable,Object[]";
+   }
+   
+   public void throwing11(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing11 = "Object,Object[]";
+   }
+   
+   public void throwing11(@Thrown Throwable thrown)
+   {
+      throwing11 = "Throwable";
+   }
+   
+   public void throwing11(@Thrown Object thrown)
+   {
+      throwing11 = "Object";
+   }
+   
+   public void throwing11(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING12 ADVICE */
+   
+   public void throwing12(@JoinPoint JoinPointInfo joinpoint,
+         @Thrown Object thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing12 = "JoinPointInfo,Object,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing12(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing12 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing12(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing12 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing12(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing12 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing12(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing12 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing12(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing12 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing12(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing12 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing12(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing12 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing12 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing12 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing12 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing12 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing12 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing12 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing12 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing12 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing12 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing12(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing12 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing12 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing12 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing12 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing12 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing12(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing12 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing12(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing12 = "Throwable,Implementor";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing12 = "Throwable,SubInterface";
+   }
+
+   public void throwing12(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing12 = "Throwable,Object";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing12 = "Throwable,Interface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing12 = "Throwable,SuperInterface";
+   }
+
+   public void throwing12(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing12 = "Object,Implementor";
+   }
+      
+   public void throwing12(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing12 = "Object,SubInterface";
+   }
+
+   public void throwing12(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing12 = "Object,Object";
+   }
+   
+   public void throwing12(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing12 = "Object,Interface";
+   }
+
+   public void throwing12(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing12 = "Object,SuperInterface";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing12 = "Throwable,Object[]";
+   }
+   
+   public void throwing12(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing12 = "Object,Object[]";
+   }
+   
+   public void throwing12(@Thrown Throwable thrown)
+   {
+      throwing12 = "Throwable";
+   }
+   
+   public void throwing12(@Thrown Object thrown)
+   {
+      throwing12 = "Object";
+   }
+   
+   public void throwing12(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING13 ADVICE */
+   
+   public void throwing13(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing13 = "JoinPointInfo,Throwable,SubInterface";
+   }
+
+   public void throwing13(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing13 = "JoinPointInfo,Throwable,Implementor";
+   }
+   
+   public void throwing13(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing13 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing13(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing13 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing13(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing13 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing13(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing13 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing13(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing13 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing13 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing13 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing13 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing13 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing13 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing13 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing13 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing13 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing13 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing13(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing13 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing13 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing13 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing13 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing13 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing13(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing13 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing13(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing13 = "Throwable,Implementor";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing13 = "Throwable,SubInterface";
+   }
+
+   public void throwing13(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing13 = "Throwable,Object";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing13 = "Throwable,Interface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing13 = "Throwable,SuperInterface";
+   }
+
+   public void throwing13(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing13 = "Object,Implementor";
+   }
+      
+   public void throwing13(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing13 = "Object,SubInterface";
+   }
+
+   public void throwing13(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing13 = "Object,Object";
+   }
+   
+   public void throwing13(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing13 = "Object,Interface";
+   }
+
+   public void throwing13(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing13 = "Object,SuperInterface";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing13 = "Throwable,Object[]";
+   }
+   
+   public void throwing13(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing13 = "Object,Object[]";
+   }
+   
+   public void throwing13(@Thrown Throwable thrown)
+   {
+      throwing13 = "Throwable";
+   }
+   
+   public void throwing13(@Thrown Object thrown)
+   {
+      throwing13 = "Object";
+   }
+   
+   public void throwing13(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING14 ADVICE */
+   
+   public void throwing14(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing14 = "JoinPointInfo,Throwable,Interface";
+   }
+
+   public void throwing14(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing14 = "JoinPointInfo,Throwable,Object";
+   }
+   public void throwing14(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing14 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing14(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing14 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing14(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing14 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing14 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing14 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing14 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing14 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing14 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing14 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing14 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing14 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing14 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing14(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing14 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing14 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing14 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing14 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing14 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing14(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing14 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing14(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing14 = "Throwable,Implementor";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing14 = "Throwable,SubInterface";
+   }
+
+   public void throwing14(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing14 = "Throwable,Object";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing14 = "Throwable,Interface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing14 = "Throwable,SuperInterface";
+   }
+
+   public void throwing14(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing14 = "Object,Implementor";
+   }
+      
+   public void throwing14(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing14 = "Object,SubInterface";
+   }
+
+   public void throwing14(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing14 = "Object,Object";
+   }
+   
+   public void throwing14(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing14 = "Object,Interface";
+   }
+
+   public void throwing14(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing14 = "Object,SuperInterface";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing14 = "Throwable,Object[]";
+   }
+   
+   public void throwing14(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing14 = "Object,Object[]";
+   }
+   
+   public void throwing14(@Thrown Throwable thrown)
+   {
+      throwing14 = "Throwable";
+   }
+   
+   public void throwing14(@Thrown Object thrown)
+   {
+      throwing14 = "Object";
+   }
+   
+   public void throwing14(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING15 ADVICE */
+   
+   public void throwing15(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing15 = "JoinPointInfo,Throwable,SuperInterface";
+   }
+   
+   public void throwing15(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing15 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing15(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing15 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing15 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing15 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing15 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing15 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing15 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing15 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing15 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing15 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing15 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing15(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing15 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing15 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing15 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing15 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing15 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing15(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing15 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing15(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing15 = "Throwable,Implementor";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing15 = "Throwable,SubInterface";
+   }
+
+   public void throwing15(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing15 = "Throwable,Object";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing15 = "Throwable,Interface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing15 = "Throwable,SuperInterface";
+   }
+
+   public void throwing15(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing15 = "Object,Implementor";
+   }
+      
+   public void throwing15(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing15 = "Object,SubInterface";
+   }
+
+   public void throwing15(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing15 = "Object,Object";
+   }
+   
+   public void throwing15(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing15 = "Object,Interface";
+   }
+
+   public void throwing15(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing15 = "Object,SuperInterface";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing15 = "Throwable,Object[]";
+   }
+   
+   public void throwing15(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing15 = "Object,Object[]";
+   }
+   
+   public void throwing15(@Thrown Throwable thrown)
+   {
+      throwing15 = "Throwable";
+   }
+   
+   public void throwing15(@Thrown Object thrown)
+   {
+      throwing15 = "Object";
+   }
+   
+   public void throwing15(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING16 ADVICE */
+   
+   public void throwing16(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing16 = "JoinPointInfo,Throwable,Object[]";
+   }
+   
+   public void throwing16(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing16 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing16 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing16 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing16 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing16 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing16 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing16 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing16 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing16 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing16 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing16(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing16 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing16 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing16 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing16 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing16 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing16(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing16 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing16(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing16 = "Throwable,Implementor";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing16 = "Throwable,SubInterface";
+   }
+
+   public void throwing16(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing16 = "Throwable,Object";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing16 = "Throwable,Interface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing16 = "Throwable,SuperInterface";
+   }
+
+   public void throwing16(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing16 = "Object,Implementor";
+   }
+      
+   public void throwing16(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing16 = "Object,SubInterface";
+   }
+
+   public void throwing16(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing16 = "Object,Object";
+   }
+   
+   public void throwing16(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing16 = "Object,Interface";
+   }
+
+   public void throwing16(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing16 = "Object,SuperInterface";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing16 = "Throwable,Object[]";
+   }
+   
+   public void throwing16(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing16 = "Object,Object[]";
+   }
+   
+   public void throwing16(@Thrown Throwable thrown)
+   {
+      throwing16 = "Throwable";
+   }
+   
+   public void throwing16(@Thrown Object thrown)
+   {
+      throwing16 = "Object";
+   }
+   
+   public void throwing16(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING17 ADVICE */
+   
+   public void throwing17(@JoinPoint JoinPointInfo joinPoint,
+         @Thrown Object thrown, @Args Object[] args)
+   {
+      throwing17 = "JoinPointInfo,Object,Object[]";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing17 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing17 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing17 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing17 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing17 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing17 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing17 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing17 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing17 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing17(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing17 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing17 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing17 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing17 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing17 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing17(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing17 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing17(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing17 = "Throwable,Implementor";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing17 = "Throwable,SubInterface";
+   }
+
+   public void throwing17(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing17 = "Throwable,Object";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing17 = "Throwable,Interface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing17 = "Throwable,SuperInterface";
+   }
+
+   public void throwing17(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing17 = "Object,Implementor";
+   }
+      
+   public void throwing17(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing17 = "Object,SubInterface";
+   }
+
+   public void throwing17(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing17 = "Object,Object";
+   }
+   
+   public void throwing17(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing17 = "Object,Interface";
+   }
+
+   public void throwing17(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing17 = "Object,SuperInterface";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing17 = "Throwable,Object[]";
+   }
+   
+   public void throwing17(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing17 = "Object,Object[]";
+   }
+   
+   public void throwing17(@Thrown Throwable thrown)
+   {
+      throwing17 = "Throwable";
+   }
+   
+   public void throwing17(@Thrown Object thrown)
+   {
+      throwing17 = "Object";
+   }
+   
+   public void throwing17(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING18 ADVICE */
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing18 = "Throwable,SubInterface,Implementor";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing18 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing18 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing18 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing18 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing18 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing18 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing18 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing18 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing18(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing18 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing18 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing18 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing18 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing18 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing18(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing18 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing18(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing18 = "Throwable,Implementor";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing18 = "Throwable,SubInterface";
+   }
+
+   public void throwing18(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing18 = "Throwable,Object";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing18 = "Throwable,Interface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing18 = "Throwable,SuperInterface";
+   }
+
+   public void throwing18(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing18 = "Object,Implementor";
+   }
+      
+   public void throwing18(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing18 = "Object,SubInterface";
+   }
+
+   public void throwing18(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing18 = "Object,Object";
+   }
+   
+   public void throwing18(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing18 = "Object,Interface";
+   }
+
+   public void throwing18(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing18 = "Object,SuperInterface";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing18 = "Throwable,Object[]";
+   }
+   
+   public void throwing18(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing18 = "Object,Object[]";
+   }
+   
+   public void throwing18(@Thrown Throwable thrown)
+   {
+      throwing18 = "Throwable";
+   }
+   
+   public void throwing18(@Thrown Object thrown)
+   {
+      throwing18 = "Object";
+   }
+   
+   public void throwing18(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING19 ADVICE */
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing19 = "Throwable,SubInterface,Object";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing19 = "Throwable,SubInterface,SubInterface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing19 = "Throwable,Interface,Implementor";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing19 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing19 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing19 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing19 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing19 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing19(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing19 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing19 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing19 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing19 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing19 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing19(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing19 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing19(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing19 = "Throwable,Implementor";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing19 = "Throwable,SubInterface";
+   }
+
+   public void throwing19(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing19 = "Throwable,Object";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing19 = "Throwable,Interface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing19 = "Throwable,SuperInterface";
+   }
+
+   public void throwing19(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing19 = "Object,Implementor";
+   }
+      
+   public void throwing19(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing19 = "Object,SubInterface";
+   }
+
+   public void throwing19(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing19 = "Object,Object";
+   }
+   
+   public void throwing19(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing19 = "Object,Interface";
+   }
+
+   public void throwing19(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing19 = "Object,SuperInterface";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing19 = "Throwable,Object[]";
+   }
+   
+   public void throwing19(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing19 = "Object,Object[]";
+   }
+   
+   public void throwing19(@Thrown Throwable thrown)
+   {
+      throwing19 = "Throwable";
+   }
+   
+   public void throwing19(@Thrown Object thrown)
+   {
+      throwing19 = "Object";
+   }
+   
+   public void throwing19(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING20 ADVICE */
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing20 = "Throwable,Interface,SubInterface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SubInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing20 = "Throwable,SubInterface,Interface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SuperInterface arg,
+         @Arg Implementor implementor)
+   {
+      throwing20 = "Throwable,SuperInterface,Implementor";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing20 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing20 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing20(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing20 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing20 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing20 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing20 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing20 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing20(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing20 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing20(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing20 = "Throwable,Implementor";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing20 = "Throwable,SubInterface";
+   }
+
+   public void throwing20(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing20 = "Throwable,Object";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing20 = "Throwable,Interface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing20 = "Throwable,SuperInterface";
+   }
+
+   public void throwing20(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing20 = "Object,Implementor";
+   }
+      
+   public void throwing20(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing20 = "Object,SubInterface";
+   }
+
+   public void throwing20(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing20 = "Object,Object";
+   }
+   
+   public void throwing20(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing20 = "Object,Interface";
+   }
+
+   public void throwing20(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing20 = "Object,SuperInterface";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing20 = "Throwable,Object[]";
+   }
+   
+   public void throwing20(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing20 = "Object,Object[]";
+   }
+   
+   public void throwing20(@Thrown Throwable thrown)
+   {
+      throwing20 = "Throwable";
+   }
+   
+   public void throwing20(@Thrown Object thrown)
+   {
+      throwing20 = "Object";
+   }
+   
+   public void throwing20(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING21 ADVICE */
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg SubInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing21 = "Throwable,SubInterface,SuperInterface";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg Interface arg2)
+   {
+      throwing21 = "Throwable,Interface,Interface";
+   }
+
+   public void throwing21(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Object arg2)
+   {
+      throwing21 = "Throwable,SuperInterface,Object";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg SubInterface arg2)
+   {
+      throwing21 = "Throwable,SuperInterface,SubInterface";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing21 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing21 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing21 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing21(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing21 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing21(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing21 = "Throwable,Implementor";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing21 = "Throwable,SubInterface";
+   }
+
+   public void throwing21(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing21 = "Throwable,Object";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing21 = "Throwable,Interface";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing21 = "Throwable,SuperInterface";
+   }
+
+   public void throwing21(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing21 = "Object,Implementor";
+   }
+      
+   public void throwing21(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing21 = "Object,SubInterface";
+   }
+
+   public void throwing21(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing21 = "Object,Object";
+   }
+   
+   public void throwing21(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing21 = "Object,Interface";
+   }
+
+   public void throwing21(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing21 = "Object,SuperInterface";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing21 = "Throwable,Object[]";
+   }
+   
+   public void throwing21(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing21 = "Object,Object[]";
+   }
+   
+   public void throwing21(@Thrown Throwable thrown)
+   {
+      throwing21 = "Throwable";
+   }
+   
+   public void throwing21(@Thrown Object thrown)
+   {
+      throwing21 = "Object";
+   }
+   
+   public void throwing21(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING22 ADVICE */
+   
+   public void throwing22(@Thrown Throwable thrown, @Arg Interface arg1,
+         @Arg SuperInterface arg2)
+   {
+      throwing22 = "Throwable,Interface,SuperInterface";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown, @Arg SuperInterface arg1,
+         @Arg Interface arg2)
+   {
+      throwing22 = "Throwable,SuperInterface,Interface";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing22 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing22(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing22 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing22(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing22 = "Throwable,Implementor";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing22 = "Throwable,SubInterface";
+   }
+
+   public void throwing22(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing22 = "Throwable,Object";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing22 = "Throwable,Interface";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing22 = "Throwable,SuperInterface";
+   }
+
+   public void throwing22(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing22 = "Object,Implementor";
+   }
+      
+   public void throwing22(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing22 = "Object,SubInterface";
+   }
+
+   public void throwing22(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing22 = "Object,Object";
+   }
+   
+   public void throwing22(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing22 = "Object,Interface";
+   }
+
+   public void throwing22(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing22 = "Object,SuperInterface";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing22 = "Throwable,Object[]";
+   }
+   
+   public void throwing22(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing22 = "Object,Object[]";
+   }
+   
+   public void throwing22(@Thrown Throwable thrown)
+   {
+      throwing22 = "Throwable";
+   }
+   
+   public void throwing22(@Thrown Object thrown)
+   {
+      throwing22 = "Object";
+   }
+   
+   public void throwing22(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING23 ADVICE */
+   
+   public void throwing23(@Thrown Throwable thrown, @Arg SuperInterface arg1, 
+         @Arg SuperInterface arg2)
+   {
+      throwing23 = "Throwable,SuperInterface,SuperInterface";
+   }
+   
+   public void throwing23(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing23 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing23(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing23 = "Throwable,Implementor";
+   }
+   
+   public void throwing23(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing23 = "Throwable,SubInterface";
+   }
+
+   public void throwing23(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing23 = "Throwable,Object";
+   }
+   
+   public void throwing23(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing23 = "Throwable,Interface";
+   }
+   
+   public void throwing23(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing23 = "Throwable,SuperInterface";
+   }
+
+   public void throwing23(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing23 = "Object,Implementor";
+   }
+      
+   public void throwing23(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing23 = "Object,SubInterface";
+   }
+
+   public void throwing23(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing23 = "Object,Object";
+   }
+   
+   public void throwing23(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing23 = "Object,Interface";
+   }
+
+   public void throwing23(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing23 = "Object,SuperInterface";
+   }
+   
+   public void throwing23(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing23 = "Throwable,Object[]";
+   }
+   
+   public void throwing23(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing23 = "Object,Object[]";
+   }
+   
+   public void throwing23(@Thrown Throwable thrown)
+   {
+      throwing23 = "Throwable";
+   }
+   
+   public void throwing23(@Thrown Object thrown)
+   {
+      throwing23 = "Object";
+   }
+   
+   public void throwing23(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING24 ADVICE */
+   
+   public void throwing24(@Thrown Object thrown, @Arg SubInterface arg1,
+         @Arg Implementor arg2)
+   {
+      throwing24 = "Object,SubInterface,Implementor";
+   }
+
+   public void throwing24(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing24 = "Throwable,Implementor";
+   }
+   
+   public void throwing24(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing24 = "Throwable,SubInterface";
+   }
+
+   public void throwing24(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing24 = "Throwable,Object";
+   }
+   
+   public void throwing24(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing24 = "Throwable,Interface";
+   }
+   
+   public void throwing24(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing24 = "Throwable,SuperInterface";
+   }
+
+   public void throwing24(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing24 = "Object,Implementor";
+   }
+      
+   public void throwing24(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing24 = "Object,SubInterface";
+   }
+
+   public void throwing24(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing24 = "Object,Object";
+   }
+   
+   public void throwing24(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing24 = "Object,Interface";
+   }
+
+   public void throwing24(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing24 = "Object,SuperInterface";
+   }
+   
+   public void throwing24(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing24 = "Throwable,Object[]";
+   }
+   
+   public void throwing24(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing24 = "Object,Object[]";
+   }
+   
+   public void throwing24(@Thrown Throwable thrown)
+   {
+      throwing24 = "Throwable";
+   }
+   
+   public void throwing24(@Thrown Object thrown)
+   {
+      throwing24 = "Object";
+   }
+   
+   public void throwing24(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING25 ADVICE */
+   
+   public void throwing25(@Thrown Throwable thrown, @Arg Implementor arg2)
+   {
+      throwing25 = "Throwable,Implementor";
+   }
+   
+   public void throwing25(@Thrown Throwable thrown, @Arg SubInterface arg1)
+   {
+      throwing25 = "Throwable,SubInterface";
+   }
+
+   public void throwing25(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing25 = "Throwable,Object";
+   }
+   
+   public void throwing25(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing25 = "Throwable,Interface";
+   }
+   
+   public void throwing25(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing25 = "Throwable,SuperInterface";
+   }
+
+   public void throwing25(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing25 = "Object,Implementor";
+   }
+      
+   public void throwing25(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing25 = "Object,SubInterface";
+   }
+
+   public void throwing25(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing25 = "Object,Object";
+   }
+   
+   public void throwing25(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing25 = "Object,Interface";
+   }
+
+   public void throwing25(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing25 = "Object,SuperInterface";
+   }
+   
+   public void throwing25(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing25 = "Throwable,Object[]";
+   }
+   
+   public void throwing25(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing25 = "Object,Object[]";
+   }
+   
+   public void throwing25(@Thrown Throwable thrown)
+   {
+      throwing25 = "Throwable";
+   }
+   
+   public void throwing25(@Thrown Object thrown)
+   {
+      throwing25 = "Object";
+   }
+   
+   public void throwing25(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING26 ADVICE */
+   
+   public void throwing26(@Thrown Throwable thrown, @Arg Object arg2)
+   {
+      throwing26 = "Throwable,Object";
+   }
+   
+   public void throwing26(@Thrown Throwable thrown, @Arg Interface arg1)
+   {
+      throwing26 = "Throwable,Interface";
+   }
+   
+   public void throwing26(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing26 = "Throwable,SuperInterface";
+   }
+
+   public void throwing26(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing26 = "Object,Implementor";
+   }
+      
+   public void throwing26(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing26 = "Object,SubInterface";
+   }
+
+   public void throwing26(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing26 = "Object,Object";
+   }
+   
+   public void throwing26(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing26 = "Object,Interface";
+   }
+
+   public void throwing26(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing26 = "Object,SuperInterface";
+   }
+   
+   public void throwing26(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing26 = "Throwable,Object[]";
+   }
+   
+   public void throwing26(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing26 = "Object,Object[]";
+   }
+   
+   public void throwing26(@Thrown Throwable thrown)
+   {
+      throwing26 = "Throwable";
+   }
+   
+   public void throwing26(@Thrown Object thrown)
+   {
+      throwing26 = "Object";
+   }
+   
+   public void throwing26(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING27 ADVICE */
+   
+   public void throwing27(@Thrown Throwable thrown, @Arg SuperInterface arg1)
+   {
+      throwing27 = "Throwable,SuperInterface";
+   }
+
+   public void throwing27(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing27 = "Object,Implementor";
+   }
+      
+   public void throwing27(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing27 = "Object,SubInterface";
+   }
+
+   public void throwing27(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing27 = "Object,Object";
+   }
+   
+   public void throwing27(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing27 = "Object,Interface";
+   }
+
+   public void throwing27(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing27 = "Object,SuperInterface";
+   }
+   
+   public void throwing27(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing27 = "Throwable,Object[]";
+   }
+   
+   public void throwing27(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing27 = "Object,Object[]";
+   }
+   
+   public void throwing27(@Thrown Throwable thrown)
+   {
+      throwing27 = "Throwable";
+   }
+   
+   public void throwing27(@Thrown Object thrown)
+   {
+      throwing27 = "Object";
+   }
+   
+   public void throwing27(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING28 ADVICE */
+   
+   public void throwing28(@Thrown Object thrown, @Arg Implementor arg2)
+   {
+      throwing28 = "Object,Implementor";
+   }
+      
+   public void throwing28(@Thrown Object thrown, @Arg SubInterface arg1)
+   {
+      throwing28 = "Object,SubInterface";
+   }
+
+   public void throwing28(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing28 = "Object,Object";
+   }
+   
+   public void throwing28(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing28 = "Object,Interface";
+   }
+
+   public void throwing28(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing28 = "Object,SuperInterface";
+   }
+   
+   public void throwing28(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing28 = "Throwable,Object[]";
+   }
+   
+   public void throwing28(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing28 = "Object,Object[]";
+   }
+   
+   public void throwing28(@Thrown Throwable thrown)
+   {
+      throwing28 = "Throwable";
+   }
+   
+   public void throwing28(@Thrown Object thrown)
+   {
+      throwing28 = "Object";
+   }
+   
+   public void throwing28(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING29 ADVICE */
+   
+   public void throwing29(@Thrown Object thrown, @Arg Object arg2)
+   {
+      throwing29 = "Object,Object";
+   }
+   
+   public void throwing29(@Thrown Object thrown, @Arg Interface arg1)
+   {
+      throwing29 = "Object,Interface";
+   }
+
+   public void throwing29(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing29 = "Object,SuperInterface";
+   }
+   
+   public void throwing29(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing29 = "Throwable,Object[]";
+   }
+   
+   public void throwing29(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing29 = "Object,Object[]";
+   }
+   
+   public void throwing29(@Thrown Throwable thrown)
+   {
+      throwing29 = "Throwable";
+   }
+   
+   public void throwing29(@Thrown Object thrown)
+   {
+      throwing29 = "Object";
+   }
+   
+   public void throwing29(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING30 ADVICE */
+   
+   public void throwing30(@Thrown Object thrown, @Arg SuperInterface arg1)
+   {
+      throwing30 = "Object,SuperInterface";
+   }
+   
+   public void throwing30(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing30 = "Throwable,Object[]";
+   }
+   
+   public void throwing30(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing30 = "Object,Object[]";
+   }
+   
+   public void throwing30(@Thrown Throwable thrown)
+   {
+      throwing30 = "Throwable";
+   }
+   
+   public void throwing30(@Thrown Object thrown)
+   {
+      throwing30 = "Object";
+   }
+   
+   public void throwing30(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING31 ADVICE */
+   
+   public void throwing31(@Thrown Throwable thrown, @Args Object[] args)
+   {
+      throwing31 = "Throwable,Object[]";
+   }
+   
+   public void throwing31(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing31 = "Object,Object[]";
+   }
+   
+   public void throwing31(@Thrown Throwable thrown)
+   {
+      throwing31 = "Throwable";
+   }
+   
+   public void throwing31(@Thrown Object thrown)
+   {
+      throwing31 = "Object";
+   }
+   
+   public void throwing31(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING32 ADVICE */
+   
+   public void throwing32(@Thrown Object thrown, @Args Object[] args)
+   {
+      throwing32 = "Object,Object[]";
+   }
+   
+   public void throwing32(@Thrown Throwable thrown)
+   {
+      throwing32 = "Throwable";
+   }
+   
+   public void throwing32(@Thrown Object thrown)
+   {
+      throwing32 = "Object";
+   }
+   
+   public void throwing32(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING33 ADVICE */
+   
+   public void throwing33(@Thrown Throwable thrown)
+   {
+      throwing33 = "Throwable";
+   }
+   
+   public void throwing33(@Thrown Object thrown)
+   {
+      throwing33 = "Object";
+   }
+   
+   public void throwing33(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
+   
+   /* THROWING34 ADVICE */
+   
+   public void throwing34(@Thrown Object thrown)
+   {
+      throwing34 = "Object";
+   }
+   
+   public void throwing34(@JoinPoint JoinPointInfo joinpoint)
+   {
+      Assert.fail("This advice should never be executed");
+   }
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list