Author: stefanegli
Date: Tue Mar  4 10:44:45 2014
New Revision: 1574024

URL: http://svn.apache.org/r1574024
Log:
no-jira: fixing TopologyTest by properly stopping the Instance, as otherwise 
this leaks VotingHandlers into subsequent test cases and ruins their results

Modified:
    
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/setup/Instance.java
    
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java

Modified: 
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/setup/Instance.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/setup/Instance.java?rev=1574024&r1=1574023&r2=1574024&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/setup/Instance.java
 (original)
+++ 
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/setup/Instance.java
 Tue Mar  4 10:44:45 2014
@@ -576,10 +576,11 @@ public class Instance {
 
     public void stop() throws Exception {
         logger.info("stop: stopping slingId="+slingId+", 
debugName="+debugName);
-       if (heartbeatRunner!=null) {
-               heartbeatRunner.stop();
-               heartbeatRunner = null;
-       }
+        try {
+            stopHeartbeats();
+        } catch (Throwable e) {
+            throw new Exception("Caught Throwable in stopHeartbeats: "+e, e);
+        }
        if ((observationListener != null) && (observationManager != null)) {
            logger.info("stop: removing listener for slingId="+slingId+": 
"+observationListener);
             observationManager.removeEventListener(observationListener);

Modified: 
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java?rev=1574024&r1=1574023&r2=1574024&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java
 (original)
+++ 
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java
 Tue Mar  4 10:44:45 2014
@@ -33,10 +33,15 @@ import org.apache.sling.discovery.Topolo
 import org.apache.sling.discovery.impl.setup.Instance;
 import org.apache.sling.discovery.impl.topology.announcement.Announcement;
 import 
org.apache.sling.discovery.impl.topology.connector.TopologyConnectorClientInformation;
+import org.junit.After;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TopologyTest {
 
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
     class Connector {
         
         private final Instance from;
@@ -53,8 +58,20 @@ public class TopologyTest {
         }
     }
     
+    private final List<Instance> instances = new LinkedList<Instance>();
+    
+    @After
+    public void tearDown() throws Exception {
+        for (Iterator<Instance> it = instances.iterator(); it.hasNext();) {
+            final Instance instance = it.next();
+            instance.stop();
+        }
+    }
+    
     private Instance createInstance(String debugName) throws Exception {
-        return Instance.newStandaloneInstance(debugName, true);
+        final Instance instance = Instance.newStandaloneInstance(debugName, 
true);
+        instances.add(instance);
+        return instance;
     }
 
     private Connector createConnector(Instance instance1, Instance instance2) 
throws Throwable {
@@ -152,17 +169,22 @@ public class TopologyTest {
     
     @Test
     public void testLargeTopologyWithHub() throws Throwable {
+        logger.info("testLargeTopologyWithHub: start");
         final int TEST_SIZE = 100;
         Instance hub = createInstance("hub");
         
         List<String> slingIds = new LinkedList<String>();
         slingIds.add(hub.getSlingId());
         for(int i=0; i<TEST_SIZE; i++) {
+//            logger.info("testLargeTopologyWithHub: adding instance "+i);
             Instance instance = createInstance("instance"+i);
+//            logger.info("testLargeTopologyWithHub: adding connector "+i);
             Connector connector = createConnector(instance, hub);
             slingIds.add(instance.getSlingId());
         }
+        logger.info("testLargeTopologyWithHub: checking if all connectors are 
registered");
         assertTopologyConsistsOf(hub.getDiscoveryService().getTopology(), 
slingIds.toArray(new String[slingIds.size()]));
+        logger.info("testLargeTopologyWithHub: end");
     }
 
 }


Reply via email to