[jboss-cvs] JBossAS SVN: r70769 - projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 12 10:06:03 EDT 2008


Author: flavia.rainone at jboss.com
Date: 2008-03-12 10:06:03 -0400 (Wed, 12 Mar 2008)
New Revision: 70769

Modified:
   projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/RebuildingChainTestCase.java
   projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncInterceptor.java
   projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncThread.java
Log:
[JBAOP-499] Now the RebuldingChainTestCase has two flavours: with joins and without joins (both test different deadlock scenarios)

Modified: projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/RebuildingChainTestCase.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/RebuildingChainTestCase.java	2008-03-12 14:05:20 UTC (rev 70768)
+++ projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/RebuildingChainTestCase.java	2008-03-12 14:06:03 UTC (rev 70769)
@@ -23,11 +23,8 @@
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
-import junit.textui.TestRunner;
 
-import org.jboss.aop.AspectManager;
 import org.jboss.test.aop.AOPTestWithSetup;
-import org.jboss.test.aop.override.OverrideTestCase;
 
 /**
  * A TestRebuildingChain.
@@ -80,12 +77,43 @@
       assertFalse("Failed to match pointcut when rebuilding the chain....", failed);
    }
    
+   public void testRebuildingChainWithJoin() throws Exception
+   {
+      System.out.println("testing rebuildingchain!");
+//      AspectManager.instance().verbose = true;
+      SyncThread st = new SyncThread();
+      RebuildThread rt = new RebuildThread();
+      rt.linkNewAdvice();
+      
+      rt.start();
+      st.start();
+      
+      /*try
+      {
+         long start = System.currentTimeMillis();
+         Thread.sleep(20);
+         System.out.println("Slept for: "+(System.currentTimeMillis()-start));
+      }
+      catch(InterruptedException ie)
+      {
+         System.err.println("BAH "+ie.getMessage());
+      }
+      */
+      //st.setDone(true);
+      //rt.setDone(true);
+      
+      st.join();
+      rt.join();
+      
+      assertFalse("Failed to match pointcut when rebuilding the chain....", failed);
+   }
+   
    public static void setTestFailed()
    {
       failed = true;
    }
    
-   public static void main(String[] args)throws Exception
+   /*public static void main(String[] args)throws Exception
    {
       try
       {
@@ -96,5 +124,5 @@
       {
          System.err.println(e);
       }
-   }
+   }*/
 }

Modified: projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncInterceptor.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncInterceptor.java	2008-03-12 14:05:20 UTC (rev 70768)
+++ projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncInterceptor.java	2008-03-12 14:06:03 UTC (rev 70769)
@@ -40,11 +40,11 @@
    }
 
    //@Override
-   public Object invoke(Invocation invocation) throws Throwable
+   public synchronized Object invoke(Invocation invocation) throws Throwable
    {
       try
       {
-         System.out.println("SyncInterceptor");
+         System.out.println("SyncInterceptor ENTERED");
          SyncThread.setStatus(true);
          return invocation.invokeNext();
       }
@@ -55,6 +55,7 @@
       finally
       {
          SyncThread.setStatus(false);
+         System.out.println("SyncInterceptor EXITED");
       }
    }
    

Modified: projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncThread.java
===================================================================
--- projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncThread.java	2008-03-12 14:05:20 UTC (rev 70768)
+++ projects/aop/branches/deadlocks/aop/src/test/org/jboss/test/aop/rebuildingchain/SyncThread.java	2008-03-12 14:06:03 UTC (rev 70769)
@@ -29,6 +29,7 @@
  */
 public class SyncThread extends Thread
 {
+   private static Object lock = new Object();
    private static volatile boolean status = false;
    private volatile boolean done = false;
 
@@ -58,12 +59,18 @@
 
    public static boolean getStatus()
    {
-      return status;
+      synchronized(lock)
+      {
+        return status;
+      }
    }
    
    public static void setStatus(boolean b)
    {
-      status = b;
+      synchronized(lock)
+      {
+         status = b;
+      }
    }
    
    public void setDone(boolean b)




More information about the jboss-cvs-commits mailing list