You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2015/10/29 15:17:56 UTC

svn commit: r1711275 - /sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractClusterTest.java

Author: stefanegli
Date: Thu Oct 29 14:17:56 2015
New Revision: 1711275

URL: http://svn.apache.org/viewvc?rev=1711275&view=rev
Log:
SLING-5126 / SLING-5195 related: fixing a test

Modified:
    sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractClusterTest.java

Modified: sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractClusterTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractClusterTest.java?rev=1711275&r1=1711274&r2=1711275&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractClusterTest.java (original)
+++ sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractClusterTest.java Thu Oct 29 14:17:56 2015
@@ -444,8 +444,22 @@ public abstract class AbstractClusterTes
         for(int i=0; i<25; i++) {
             runHeartbeatOnceWith(instance1Restarted, instance2, instance3, instance5);
             instance1.getViewChecker().checkView();
-            assertTrue(pingConnector(instance3, instance2));
-            assertTrue(pingConnector(instance5, instance2));
+            // we used to do:
+            //assertTrue(pingConnector(instance3, instance2));
+            // but that could fail with the introduction of marking
+            // an establishedView as failing upon detecting a view change
+            // when the view changes, we're sending TOPOLOGY_CHANGING to listeners
+            // so getTopology() should also return isCurrent==false - which
+            // means that doing a ping will also fail, cos that wants to 
+            // get a current topology to send as an announcement.
+            // which is a long way of saying: we cannot do an assert here
+            // since instance3 *can* have an undefined cluster view..
+            try{
+                pingConnector(instance3, instance2);
+            } catch(UndefinedClusterViewException ucve) {
+                // ignore
+            }
+            pingConnector(instance5, instance2);
             final TopologyView topology = instance3.getDiscoveryService().getTopology();
             InstanceDescription i3 = null;
             for (Iterator<InstanceDescription> it = topology.getInstances().iterator(); it.hasNext();) {
@@ -592,7 +606,17 @@ public abstract class AbstractClusterTes
                 .setMinEventDelay(MIN_EVENT_DELAY).build();
         for(int i=0; i<3; i++) {
             runHeartbeatOnceWith(instance1Restarted, instance2, instance3, instance4, instance5);
-            assertTrue(pingConnector(instance3, instance2));
+            Thread.sleep(250);
+            // since instance4 just started - hooked to instance3 
+            // it is possible that it doesn't just have a topology
+            // yet - so we cannot do:
+            //assertTrue(pingConnector(instance3, instance2));
+            // but instead do
+            try{
+                pingConnector(instance3, instance2);
+            } catch(UndefinedClusterViewException ucve) {
+                // ignore
+            }
             assertTrue(pingConnector(instance5, instance2));
         }