summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Lee <crazybob@crazybob.org>2009-09-28 22:42:37 +0000
committerBob Lee <crazybob@crazybob.org>2009-09-28 22:42:37 +0000
commit63b224feed93f03e4d66d334d9c37035901552cf (patch)
treee1c614cbf9ae71aae0cd4fad6070da49c9a64a1c
parent022b266d7de7fe77fd5ea77c19d393e4118d49fd (diff)
downloadplatform_external_jsr330-63b224feed93f03e4d66d334d9c37035901552cf.tar.gz
platform_external_jsr330-63b224feed93f03e4d66d334d9c37035901552cf.tar.bz2
platform_external_jsr330-63b224feed93f03e4d66d334d9c37035901552cf.zip
Made forTests() thread safe (despite JUnit).
git-svn-id: https://atinject.googlecode.com/svn/trunk@37 3bc8319c-20ab-11de-9edc-3f40a397ab60
-rw-r--r--tck/org/atinject/tck/Tck.java13
-rw-r--r--tck/org/atinject/tck/auto/Convertible.java9
2 files changed, 10 insertions, 12 deletions
diff --git a/tck/org/atinject/tck/Tck.java b/tck/org/atinject/tck/Tck.java
index 1642a7a..23cda5c 100644
--- a/tck/org/atinject/tck/Tck.java
+++ b/tck/org/atinject/tck/Tck.java
@@ -38,8 +38,6 @@ import junit.framework.TestSuite;
* <pre>
* java junit.textui.TestRunner MyTck
* </pre>
- *
- * @deprecated
*/
public class Tck {
@@ -67,9 +65,6 @@ public class Tck {
* Convertible}, {@link org.atinject.tck.auto.Tire Tire}, and {@link
* org.atinject.tck.auto.accessories.SpareTire SpareTire}.
*
- * <p><b>Note:</b> Due to limitations of JUnit, you must create and run
- * only one test instance at a time.
- *
* @throws NullPointerException if car is null
* @throws ClassCastException if car doesn't extend Convertible
*/
@@ -82,7 +77,11 @@ public class Tck {
throw new ClassCastException("car doesn't implement Convertible");
}
- Convertible.Tests.car = (Convertible) car;
- return new TestSuite(Convertible.Tests.class);
+ Convertible.Tests.localConvertible.set((Convertible) car);
+ try {
+ return new TestSuite(Convertible.Tests.class);
+ } finally {
+ Convertible.Tests.localConvertible.remove();
+ }
}
}
diff --git a/tck/org/atinject/tck/auto/Convertible.java b/tck/org/atinject/tck/auto/Convertible.java
index 79f5777..06b8b1b 100644
--- a/tck/org/atinject/tck/auto/Convertible.java
+++ b/tck/org/atinject/tck/auto/Convertible.java
@@ -266,11 +266,10 @@ public class Convertible implements Car {
*/
public static class Tests extends TestCase {
- /**
- * The instance to test. Making it static isn't ideal, but it saves
- * us from having to repeat a boatload of JUnit code.
- */
- public static Convertible car;
+ public static ThreadLocal<Convertible> localConvertible
+ = new ThreadLocal<Convertible>();
+
+ private final Car car = localConvertible.get();
public void testAll() {
Tester tester = new Tester();