diff options
author | Bob Lee <crazybob@crazybob.org> | 2009-09-28 22:42:37 +0000 |
---|---|---|
committer | Bob Lee <crazybob@crazybob.org> | 2009-09-28 22:42:37 +0000 |
commit | 63b224feed93f03e4d66d334d9c37035901552cf (patch) | |
tree | e1c614cbf9ae71aae0cd4fad6070da49c9a64a1c | |
parent | 022b266d7de7fe77fd5ea77c19d393e4118d49fd (diff) | |
download | platform_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.java | 13 | ||||
-rw-r--r-- | tck/org/atinject/tck/auto/Convertible.java | 9 |
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(); |