You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ge...@apache.org on 2012/02/10 10:00:45 UTC

svn commit: r1242707 - /karaf/branches/karaf-2.2.x/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java

Author: gertv
Date: Fri Feb 10 09:00:44 2012
New Revision: 1242707

URL: http://svn.apache.org/viewvc?rev=1242707&view=rev
Log:
KARAF-1195: FeaturesServiceImplTest intermittently fails on slower machines

Modified:
    karaf/branches/karaf-2.2.x/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java

Modified: karaf/branches/karaf-2.2.x/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java?rev=1242707&r1=1242706&r2=1242707&view=diff
==============================================================================
--- karaf/branches/karaf-2.2.x/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java (original)
+++ karaf/branches/karaf-2.2.x/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java Fri Feb 10 09:00:44 2012
@@ -25,6 +25,8 @@ import java.net.URLClassLoader;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 import junit.framework.TestCase;
 
@@ -134,6 +136,8 @@ public class FeaturesServiceImplTest ext
         Map<String, Feature> versions2 = new HashMap<String, Feature>();
         versions2.put("1.0.0", new FeatureImpl("ssh", "1.0.0"));
         features.put("ssh", versions2);
+        
+        final CountDownLatch latch = new CountDownLatch(2);
 
         final FeaturesServiceImpl impl = new FeaturesServiceImpl() {
             protected Map<String,Map<String,Feature>> getFeatures() throws Exception {
@@ -147,6 +151,8 @@ public class FeaturesServiceImplTest ext
             }
             @Override
             protected void saveState() {
+                // this method will be invoked twice while features service is starting
+                latch.countDown();
             }
         };
         impl.setBundleContext(bundleContext);
@@ -156,9 +162,12 @@ public class FeaturesServiceImplTest ext
             impl.setBoot("transaction;version=1.2,ssh;version=1.0.0");
             impl.start();
 
+            // waiting for the features service installation thread to finish its work
+            latch.await(2, TimeUnit.SECONDS);
+
             assertFalse("Feature transaction 1.0.0 should not be installed", impl.isInstalled(impl.getFeature("transaction", "1.0.0")));
             assertFalse("Feature transaction 2.0.0 should not be installed", impl.isInstalled(impl.getFeature("transaction", "2.0.0")));
-            assertFalse("Feature ssh should be installed", impl.isInstalled(impl.getFeature("ssh", "1.0.0")));
+            assertTrue("Feature ssh should be installed", impl.isInstalled(impl.getFeature("ssh", "1.0.0")));
         } catch (Exception e) {
             fail(String.format("Service should not throw start-up exception but log the error instead: %s", e));
         }