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);
}