[jboss-svn-commits] JBoss Common SVN: r4705 - in arquillian/trunk: junit/src/main/java/org/jboss/arquillian/junit and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 8 10:29:36 EDT 2010


Author: aslak
Date: 2010-07-08 10:29:34 -0400 (Thu, 08 Jul 2010)
New Revision: 4705

Modified:
   arquillian/trunk/examples/testng/src/test/java/com/acme/jms/InjectionTestCase.java
   arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
   arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java
   arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java
   arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestDataProviderTransformer.java
Log:
ARQ-203 Remove ThreadLocal variables when done to prevent leakage.


Modified: arquillian/trunk/examples/testng/src/test/java/com/acme/jms/InjectionTestCase.java
===================================================================
--- arquillian/trunk/examples/testng/src/test/java/com/acme/jms/InjectionTestCase.java	2010-07-08 13:57:06 UTC (rev 4704)
+++ arquillian/trunk/examples/testng/src/test/java/com/acme/jms/InjectionTestCase.java	2010-07-08 14:29:34 UTC (rev 4705)
@@ -63,18 +63,26 @@
       
       String messageBody = "ping";
       
-      Connection connection = factory.createConnection();
-      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-      QueueRequestor requestor = new QueueRequestor((QueueSession)session, dlq);
+      Connection connection = null;
+      try
+      {
+         connection = factory.createConnection();
+         Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         QueueRequestor requestor = new QueueRequestor((QueueSession)session, dlq);
 
-      connection.start();
-      
-      Message request = session.createTextMessage(messageBody);
-      Message response = requestor.request(request, 5000);
-      
-      Assert.assertEquals(
-            ((TextMessage)response).getText(),
-            messageBody,
-            "Should have responded with same message");
+         connection.start();
+         
+         Message request = session.createTextMessage(messageBody);
+         Message response = requestor.request(request, 5000);
+         
+         Assert.assertEquals(
+               "Should have responded with same message",
+               messageBody,
+               ((TextMessage)response).getText());
+      }
+      finally
+      {
+         connection.close();
+      }
    }
 }

Modified: arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
===================================================================
--- arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java	2010-07-08 13:57:06 UTC (rev 4704)
+++ arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java	2010-07-08 14:29:34 UTC (rev 4705)
@@ -25,7 +25,6 @@
 import org.jboss.arquillian.impl.DeployableTestBuilder;
 import org.jboss.arquillian.impl.XmlConfigurationBuilder;
 import org.jboss.arquillian.spi.Configuration;
-import org.jboss.arquillian.spi.ContainerProfile;
 import org.jboss.arquillian.spi.TestMethodExecutor;
 import org.jboss.arquillian.spi.TestResult;
 import org.jboss.arquillian.spi.TestRunnerAdaptor;
@@ -54,6 +53,7 @@
     * Exception back to the client so the client side can throw it again. This to avoid a incontainer working but failing
     * on client side due to no Exception thrown. 
     */
+   // Cleaned up in JUnitTestRunner
    public static ThreadLocal<Throwable> caughtTestException = new ThreadLocal<Throwable>();
 
    /*
@@ -85,21 +85,6 @@
             throw new InitializationError(Arrays.asList((Throwable)e));
          }
       }
-      /* @HACK
-       *  If in-container, the Thread will be reused between multiple TestRuns.
-       *  We need to call BeginSuite before everyone. But only once if not. 
-       */
-      else if(ContainerProfile.CONTAINER == DeployableTestBuilder.getProfile())
-      {
-         try 
-         {
-            deployableTest.get().beforeSuite();
-         }
-         catch (Exception e) 
-         {
-            throw new InitializationError(Arrays.asList((Throwable)e));
-         }
-      }
    }
    
    @Override
@@ -117,6 +102,7 @@
                {
                   deployableTest.get().afterSuite();
                   lastCreatedRunner.set(null);
+                  deployableTest.set(null);
                }
             } 
             catch (Exception e) 

Modified: arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java
===================================================================
--- arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java	2010-07-08 13:57:06 UTC (rev 4704)
+++ arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java	2010-07-08 14:29:34 UTC (rev 4705)
@@ -110,6 +110,7 @@
          if (test != null && test.expected() != Test.None.class)
          {
             exception = Arquillian.caughtTestException.get();
+            Arquillian.caughtTestException.set(null);
          }
       }
    }

Modified: arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java
===================================================================
--- arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java	2010-07-08 13:57:06 UTC (rev 4704)
+++ arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/Arquillian.java	2010-07-08 14:29:34 UTC (rev 4705)
@@ -67,6 +67,7 @@
          return;
       }
       deployableTest.get().afterSuite();
+      deployableTest.set(null);
    }
 
    @BeforeClass(alwaysRun = true)

Modified: arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestDataProviderTransformer.java
===================================================================
--- arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestDataProviderTransformer.java	2010-07-08 13:57:06 UTC (rev 4704)
+++ arquillian/trunk/testng/src/main/java/org/jboss/arquillian/testng/TestDataProviderTransformer.java	2010-07-08 14:29:34 UTC (rev 4705)
@@ -18,22 +18,23 @@
  * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
  * @version $Revision: $
  */
-public class TestDataProviderTransformer implements IAnnotationTransformer {
+public class TestDataProviderTransformer implements IAnnotationTransformer
+{
 
-	/* (non-Javadoc)
-	 * @see org.testng.IAnnotationTransformer#transform(org.testng.annotations.ITestAnnotation, java.lang.Class, java.lang.reflect.Constructor, java.lang.reflect.Method)
-	 */
-	@SuppressWarnings("unchecked")
-	public void transform(ITestAnnotation testAnnotation, Class clazz, Constructor constructor, Method method) 
-	{
-		if(testAnnotation.getDataProviderClass() == null) 
-		{
-			if(testAnnotation instanceof TestAnnotation) 
-			{
-				TestAnnotation annoation = (TestAnnotation)testAnnotation;
-				annoation.setDataProviderClass(TestEnricherDataProvider.class);
-				annoation.setDataProvider(TestEnricherDataProvider.PROVIDER_NAME);
-			}
-		}
-	}
+   /* (non-Javadoc)
+    * @see org.testng.IAnnotationTransformer#transform(org.testng.annotations.ITestAnnotation, java.lang.Class, java.lang.reflect.Constructor, java.lang.reflect.Method)
+    */
+   @SuppressWarnings("rawtypes")
+   public void transform(ITestAnnotation testAnnotation, Class clazz, Constructor constructor, Method method)
+   {
+      if (testAnnotation.getDataProviderClass() == null)
+      {
+         if (testAnnotation instanceof TestAnnotation)
+         {
+            TestAnnotation annoation = (TestAnnotation) testAnnotation;
+            annoation.setDataProviderClass(TestEnricherDataProvider.class);
+            annoation.setDataProvider(TestEnricherDataProvider.PROVIDER_NAME);
+         }
+      }
+   }
 }



More information about the jboss-svn-commits mailing list