[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