You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2014/10/03 12:58:42 UTC

svn commit: r1629182 - /felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java

Author: pderop
Date: Fri Oct  3 10:58:42 2014
New Revision: 1629182

URL: http://svn.apache.org/r1629182
Log:
only create a threadpool if the current test has called setParallel() method.

Modified:
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java?rev=1629182&r1=1629181&r2=1629182&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/TestBase.java Fri Oct  3 10:58:42 2014
@@ -30,7 +30,7 @@ public abstract class TestBase extends T
     protected final static int LOG_LEVEL = LogService.LOG_WARNING;
     
     // optional thread pool used by parallel dependency managers
-    private final static ExecutorService m_threadPool = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
+    private volatile ExecutorService m_threadPool;
     
     // flag used to check if the threadpool must be used for a given test.
     private boolean m_parallel;
@@ -65,6 +65,7 @@ public abstract class TestBase extends T
         m_dm = new DependencyManager(context);
         if (m_parallel) {
             warn("Using threadpool ...");
+            m_threadPool = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
             Hashtable props = new Hashtable();
             props.put("target", DependencyManager.THREADPOOL);
             m_threadPoolRegistration = context.registerService(Executor.class.getName(), m_threadPool, props);
@@ -75,10 +76,11 @@ public abstract class TestBase extends T
     	warn("Tearing down test " + getClass().getName());
     	logService.unregister();
     	context.removeFrameworkListener(this);
-    	if (m_threadPoolRegistration != null) {
+        clearComponents();
+        if (m_parallel && m_threadPoolRegistration != null) {
     	    m_threadPoolRegistration.unregister();
+    	    m_threadPool.shutdown();
     	}
-    	clearComponents();
     }
         
     protected DependencyManager getDM() {