You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2010/10/29 20:17:00 UTC

svn commit: r1028868 - in /tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util: ConcurrentBarrierTest.java ConcurrentTarget.java

Author: hlship
Date: Fri Oct 29 18:17:00 2010
New Revision: 1028868

URL: http://svn.apache.org/viewvc?rev=1028868&view=rev
Log:
TAP5-1326: Fix a bug in the test for ConcurrentBarrier

Modified:
    tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentBarrierTest.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentTarget.java

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentBarrierTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentBarrierTest.java?rev=1028868&r1=1028867&r2=1028868&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentBarrierTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentBarrierTest.java Fri Oct 29 18:17:00 2010
@@ -114,7 +114,8 @@ public class ConcurrentBarrierTest exten
         {
             public void run()
             {
-                target.tryIncrementCounter();
+                boolean good = false;
+                while (!good) good = target.tryIncrementCounter();
             }
         };
 
@@ -129,7 +130,8 @@ public class ConcurrentBarrierTest exten
             public void run()
             {
                 // Gets a write lock, then a read lock.
-                target.tryIncrementCounterHard();
+                boolean good = false;
+                while (!good) good = target.tryIncrementCounterHard();
             }
         };
 
@@ -144,8 +146,8 @@ public class ConcurrentBarrierTest exten
             public void run()
             {
                 // A read lock method that upgrades to a write lock
-
-                target.tryIncrementIfNonNegative();
+                boolean good = false;
+                while (!good) good = target.tryIncrementIfNonNegative();
             }
         };
 
@@ -162,7 +164,7 @@ public class ConcurrentBarrierTest exten
             {
                 // A read lock method that upgrades to a write lock
 
-                target.tryIncrementIfNonNegative();
+                assertEquals(target.tryIncrementIfNonNegative(), false);
             }
         };
 

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentTarget.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentTarget.java?rev=1028868&r1=1028867&r2=1028868&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentTarget.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/util/ConcurrentTarget.java Fri Oct 29 18:17:00 2010
@@ -14,6 +14,8 @@
 
 package org.apache.tapestry5.ioc.internal.util;
 
+import java.util.ArrayList;
+import java.util.List;
 import org.apache.tapestry5.ioc.Invokable;
 
 import java.util.concurrent.TimeUnit;
@@ -111,9 +113,9 @@ public class ConcurrentTarget
         });
     }
 
-    public void tryIncrementCounter()
+    public boolean tryIncrementCounter()
     {
-        barrier.tryWithWrite(new Runnable()
+        return barrier.tryWithWrite(new Runnable()
         {
             public void run()
             {
@@ -122,9 +124,9 @@ public class ConcurrentTarget
         }, 20, TimeUnit.MILLISECONDS);
     }
 
-    public void tryIncrementCounterHard()
+    public boolean tryIncrementCounterHard()
     {
-        barrier.tryWithWrite(new Runnable()
+        return barrier.tryWithWrite(new Runnable()
         {
             public void run()
             {
@@ -133,16 +135,18 @@ public class ConcurrentTarget
         }, 20, TimeUnit.MILLISECONDS);
     }
 
-    public void tryIncrementIfNonNegative()
+    public boolean tryIncrementIfNonNegative()
     {
+        final List<Boolean> result = new ArrayList<Boolean>();
         barrier.withRead(new Runnable()
         {
             public void run()
             {
                 if (counter >= 0)
-                    tryIncrementCounter();
+                    result.add(tryIncrementCounter());
             }
         });
+        return result.get(0);
     }