[jboss-cvs] JBossAS SVN: r63513 - in projects/aop/trunk/aop/src: resources/test/stress/batf and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jun 13 18:13:24 EDT 2007


Author: kabir.khan at jboss.com
Date: 2007-06-13 18:13:24 -0400 (Wed, 13 Jun 2007)
New Revision: 63513

Added:
   projects/aop/trunk/aop/src/resources/test/stress/batf/
   projects/aop/trunk/aop/src/resources/test/stress/batf/jboss-aop.xml
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ExtendedSetAccessiblePOJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ReflectionNoSecurityTestCase.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/SamePackageSetAccessiblePOJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/setaccessible/
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/setaccessible/DifferentPackageSetAccessiblePOJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/BeforeAfterThrowingFinallyVersusAroundTestCase.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/POJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/SimpleAspect.java
Log:
Add stress test for before/after/throwing/finally

Added: projects/aop/trunk/aop/src/resources/test/stress/batf/jboss-aop.xml
===================================================================
--- projects/aop/trunk/aop/src/resources/test/stress/batf/jboss-aop.xml	                        (rev 0)
+++ projects/aop/trunk/aop/src/resources/test/stress/batf/jboss-aop.xml	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aop>
+   <aspect class="org.jboss.test.aop.stress.batf.SimpleAspect"/>
+   
+   <bind pointcut="execution(* org.jboss.test.aop.stress.batf.POJO->methodWithAroundNoExceptions())">
+	   <around aspect="org.jboss.test.aop.stress.batf.SimpleAspect" name="methodWithAroundNoExceptions"/>
+   </bind>
+   
+   <bind pointcut="execution(* org.jboss.test.aop.stress.batf.POJO->methodWithBeforeAfter())">
+	   <before aspect="org.jboss.test.aop.stress.batf.SimpleAspect" name="before"/>
+   	<after aspect="org.jboss.test.aop.stress.batf.SimpleAspect" name="after"/>
+   </bind>
+   
+   <bind pointcut="execution(* org.jboss.test.aop.stress.batf.POJO->methodWithAroundExceptions())">
+	   <around aspect="org.jboss.test.aop.stress.batf.SimpleAspect" name="methodWithAroundExceptions"/>
+   </bind>
+   
+   <bind pointcut="execution(* org.jboss.test.aop.stress.batf.POJO->methodWithBeforeThrowingFinally())">
+	   <before aspect="org.jboss.test.aop.stress.batf.SimpleAspect" name="before"/>
+	   <throwing aspect="org.jboss.test.aop.stress.batf.SimpleAspect" name="throwing"/>
+	   <finally aspect="org.jboss.test.aop.stress.batf.SimpleAspect" name="finaly"/>
+   </bind>
+   
+</aop>
+

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ExtendedSetAccessiblePOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ExtendedSetAccessiblePOJO.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ExtendedSetAccessiblePOJO.java	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,132 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.test.aop.reflection;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+import org.jboss.test.aop.reflection.setaccessible.DifferentPackageSetAccessiblePOJO;
+
+/**
+ * @author Jason Hill
+ * @version $Revision: 57688 $
+ */
+public class ExtendedSetAccessiblePOJO extends DifferentPackageSetAccessiblePOJO
+{
+   /**
+    * Test Accessability of visible and non-visible fields
+    */
+   public void testSetAccesible() throws Exception
+   {
+      testSetAccessible(this, "advisedPrivateField",   true);
+      // Fix this - still broken with AOP
+      //testSetAccessable(this, "defaultAccessField",    true);
+      //testSetAccessable(this, "advisedProtectedField", false);
+      testSetAccessible(this, "advisedPublicField",    false);
+   }
+   
+   private void testSetAccessible(Object object, String fieldName, boolean illegalAccessExceptionTest) throws Exception
+   {
+      System.out.println("ExtendedSetAccessiblePOJO.testSetAccessible(" +fieldName + ", " + illegalAccessExceptionTest + ")");
+      
+      //final Field field = object.getClass().getDeclaredField(fieldName);
+      final Field field = object.getClass().getSuperclass().getDeclaredField(fieldName);
+      final int modifiers = field.getModifiers();
+      
+      String fieldAccess;
+      
+      if(Modifier.isPublic(modifiers))         fieldAccess = "public";
+      else if(Modifier.isProtected(modifiers)) fieldAccess = "protected";
+      else if(Modifier.isPrivate(modifiers))   fieldAccess = "private";
+      else                                     fieldAccess = "default-access";
+      
+      fieldAccess += "/extended-class";
+      //fieldAccess += getClass().getPackage().equals(object.getClass().getPackage())?
+      //      "/same-package" : "/different-package";
+      
+      if(illegalAccessExceptionTest)
+      {
+         // Verify that an IllegalAccessException is correctly generated
+         // When accessing non-visible fields
+         SetAccessibleAspect.reset();
+         
+         String errorGet = "IllegalAccessException should have been thrown because setAccessable had not been called before calling Field.get() on a " + fieldAccess + " field.";
+         
+         try
+         {
+            field.get(object);
+            throw new RuntimeException(errorGet); 
+         }
+         catch(IllegalAccessException e)
+         {
+            // IllegalAccessException is expected because setAccessable has not been called
+         }
+         
+         String errorSet = "IllegalAccessException should have been thrown because setAccessable had not been called before calling Field.set() on a " + fieldAccess + " field."; 
+         
+         try
+         {
+            field.set(object, "new value");
+            throw new RuntimeException(errorSet); 
+         }
+         catch(IllegalAccessException e)
+         {
+            // IllegalAccessException is expected because setAccessable has not been called
+         }
+         
+         // Make the field accessable
+         field.setAccessible(true);
+      }
+      
+      // Verify that an IllegalAccessException is not generated
+      // when accessing visible fields 
+      // or when accessing non-visible fields after calling Field.setAccessable()
+      SetAccessibleAspect.reset();
+      
+      String errorGet = "Could not get " + fieldAccess + " field using Field.get()";
+      if(illegalAccessExceptionTest) errorGet += " after calling Field.setAccessable()";
+      
+      try
+      {
+         field.get(object);
+      }
+      catch(IllegalAccessException e)
+      {
+         throw new RuntimeException(errorGet);
+      }
+      
+      String errorSet = "Could not set " + fieldAccess + " field using Field.set()";
+      if(illegalAccessExceptionTest) errorSet += " after calling Field.setAccessable()";
+      
+      try
+      {
+         field.set(object, "new value");
+      }
+      catch(IllegalAccessException e)
+      {
+         throw new RuntimeException(errorSet);
+      }
+      
+      // Make sure interception actually occurred
+      SetAccessibleAspect.validateInterception(fieldAccess);
+   }
+}

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ReflectionNoSecurityTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ReflectionNoSecurityTestCase.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/ReflectionNoSecurityTestCase.java	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,56 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.aop.reflection;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Completes the ReflectionTester, and runs some tests with no security manager enabled 
+ * since the tests have a different ProtectionDomain 
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ReflectionNoSecurityTestCase extends TestCase
+{
+   ReflectionPOJO reflectionPOJO;
+   public static Test suite()
+   {
+      TestSuite suite = new TestSuite("ReflectionTester");
+      suite.addTestSuite(ReflectionNoSecurityTestCase.class);
+      return suite;
+   }
+   public ReflectionNoSecurityTestCase(String name)
+   {
+      super(name);
+   }
+
+   public void testSetAccessibleField()
+   {
+     System.out.println("RUNNING TEST SET ACCESSIBLE");
+     ReflectionPOJO reflectionPOJO = new ReflectionPOJO();
+     reflectionPOJO.testSetAccessible();
+   }
+
+}

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/SamePackageSetAccessiblePOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/SamePackageSetAccessiblePOJO.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/SamePackageSetAccessiblePOJO.java	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,11 @@
+package org.jboss.test.aop.reflection;
+
+public class SamePackageSetAccessiblePOJO
+{
+   public String advisedPublicField = null;
+
+   @SuppressWarnings("unused")
+   private String advisedPrivateField     = null;
+   protected String advisedProtectedField = null;
+   String defaultAccessField              = null;
+}

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/setaccessible/DifferentPackageSetAccessiblePOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/setaccessible/DifferentPackageSetAccessiblePOJO.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/reflection/setaccessible/DifferentPackageSetAccessiblePOJO.java	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,37 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.test.aop.reflection.setaccessible;
+
+/**
+ * @author Jason Hill
+ * @version $Revision: 57688 $
+ *
+ */
+public class DifferentPackageSetAccessiblePOJO
+{
+   public String advisedPublicField = null;
+
+   @SuppressWarnings("unused")
+   private String advisedPrivateField     = null;
+   protected String advisedProtectedField = null;
+   String defaultAccessField              = null;
+}

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/BeforeAfterThrowingFinallyVersusAroundTestCase.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/BeforeAfterThrowingFinallyVersusAroundTestCase.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/BeforeAfterThrowingFinallyVersusAroundTestCase.java	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,160 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.test.aop.stress.batf;
+
+import org.jboss.test.aop.stress.AbstractScenario;
+import org.jboss.test.aop.stress.ScenarioTest;
+
+/**
+ * Primarily to make sure I got everything right for the generated advisors
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 61751 $
+ */
+public class BeforeAfterThrowingFinallyVersusAroundTestCase extends ScenarioTest
+{
+   
+   public static void main(String[] args)
+   {
+      junit.textui.TestRunner.run(BeforeAfterThrowingFinallyVersusAroundTestCase.class);
+   }
+
+   
+   public BeforeAfterThrowingFinallyVersusAroundTestCase(String name) throws Exception
+   {
+      super(name);
+   }
+
+   public void testAroundWithNoExceptionScenario() throws Exception
+   {
+      POJO pojo = new POJO();
+      pojo.methodWithAroundNoExceptions();
+      assertTrue(SimpleAspect.before);
+      assertTrue(SimpleAspect.after);
+      assertFalse(SimpleAspect.throwing);
+      assertFalse(SimpleAspect.finaly);
+      getRunner().executeScenario(new AroundWithNoExceptionsScenario());
+   }
+   
+   private class AroundWithNoExceptionsScenario extends AbstractScenario
+   {
+      POJO pojo = new POJO();
+
+      public void execute(int thread, int loop) throws Exception
+      {
+         pojo.methodWithAroundNoExceptions();
+      }
+   }
+
+   public void testBeforeAfterThrowingFinallyWithNoExceptionScenario() throws Exception
+   {
+      POJO pojo = new POJO();
+      pojo.methodWithBeforeAfter();
+      assertTrue(SimpleAspect.before);
+      assertTrue(SimpleAspect.after);
+      assertFalse(SimpleAspect.throwing);
+      assertFalse(SimpleAspect.finaly);
+      getRunner().executeScenario(new BeforeAfterThrowingFinallyWithNoExceptionsScenario());
+   }
+   
+   private class BeforeAfterThrowingFinallyWithNoExceptionsScenario extends AbstractScenario
+   {
+      POJO pojo = new POJO();
+      public void execute(int thread, int loop) throws Exception
+      {
+         pojo.methodWithBeforeAfter();
+      }
+   }
+
+   public void testAroundWithExceptionScenario() throws Exception
+   {
+      boolean exception = false;
+      try
+      {
+         POJO pojo = new POJO();
+         pojo.methodWithAroundExceptions();
+         assertTrue(SimpleAspect.before);
+         assertFalse(SimpleAspect.after);
+         assertTrue(SimpleAspect.throwing);
+         assertTrue(SimpleAspect.finaly);
+      }
+      catch (Exception e)
+      {
+         exception = true;
+      }
+      
+      assertTrue(exception);
+      getRunner().executeScenario(new AroundWithExceptionsScenario());
+   }
+   
+   private class AroundWithExceptionsScenario extends AbstractScenario
+   {
+      POJO pojo = new POJO();
+      public void execute(int thread, int loop) throws Exception
+      {
+         try
+         {
+            pojo.methodWithAroundExceptions();
+         }
+         catch(RuntimeException e) 
+         {
+            
+         }
+      }
+   }
+
+
+   public void testBeforeAfterThrowingFinallyWithExceptionScenario() throws Exception
+   {
+      boolean exception = false;
+      try
+      {
+         POJO pojo = new POJO();
+         pojo.methodWithBeforeThrowingFinally();
+         assertTrue(SimpleAspect.before);
+         assertFalse(SimpleAspect.after);
+         assertTrue(SimpleAspect.throwing);
+         assertTrue(SimpleAspect.finaly);
+      }
+      catch (Exception e)
+      {
+         exception = true;
+      }
+      
+      assertTrue(exception);
+      getRunner().executeScenario(new BeforeAfterThrowingFinallyWithExceptionScenario());
+   }
+   
+   private class BeforeAfterThrowingFinallyWithExceptionScenario extends AbstractScenario
+   {
+      POJO pojo = new POJO();
+      public void execute(int thread, int loop) throws Exception
+      {
+         try
+         {
+            pojo.methodWithBeforeThrowingFinally();
+         }
+         catch (RuntimeException e)
+         {
+         }
+      }
+   }
+}

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/POJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/POJO.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/POJO.java	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,35 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.aop.stress.batf;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class POJO
+{
+   public void methodWithAroundNoExceptions() {}
+   public void methodWithBeforeAfter() {}
+   public void methodWithAroundExceptions(){throw new RuntimeException();}
+   public void methodWithBeforeThrowingFinally(){throw new RuntimeException();}
+}

Added: projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/SimpleAspect.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/SimpleAspect.java	                        (rev 0)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/stress/batf/SimpleAspect.java	2007-06-13 22:13:24 UTC (rev 63513)
@@ -0,0 +1,96 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.aop.stress.batf;
+
+import org.jboss.aop.joinpoint.Invocation;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class SimpleAspect
+{
+   public static boolean before;
+   public static boolean after;
+   public static boolean throwing;
+   public static boolean finaly;
+   
+   public Object methodWithAroundNoExceptions(Invocation inv) throws Throwable
+   {
+      try
+      {
+         before = true;
+         return inv.invokeNext();
+      }
+      finally
+      {
+         after = true;
+      }
+   }
+   
+   public Object methodWithAroundExceptions(Invocation inv) throws Throwable
+   {
+      try
+      {
+         before = true;
+         return inv.invokeNext();
+      }
+      catch(Exception e)
+      {
+         throwing = true;
+         throw e;
+      }
+      finally
+      {
+         finaly = true;
+      }
+   }
+   
+   public void before()
+   {
+      before = true;
+   }
+   
+   public void after()
+   {
+      after = true;
+   }
+   
+   public void throwing()
+   {
+      throwing = true;
+   }
+   
+   public void finaly()
+   {
+      finaly = true;
+   }
+   
+   public void reset()
+   {
+      before = false;
+      after = false;
+      throwing = false;
+      finaly = false;
+   }
+}




More information about the jboss-cvs-commits mailing list