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/26 15:51:10 UTC

svn commit: r1710610 - /sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingView.java

Author: stefanegli
Date: Mon Oct 26 14:51:09 2015
New Revision: 1710610

URL: http://svn.apache.org/viewvc?rev=1710610&view=rev
Log:
SLING-4617 : in case of a local heartbeat timing out before even having a chance to be included in the view that the local instance generates - that vote is now not created an instead a warning is issued

Modified:
    sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingView.java

Modified: sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingView.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingView.java?rev=1710610&r1=1710609&r2=1710610&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingView.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingView.java Mon Oct 26 14:51:09 2015
@@ -64,6 +64,14 @@ public class VotingView extends View {
     public static VotingView newVoting(final ResourceResolver resourceResolver,
             final Config config,
             final String newViewId, String initiatorId, final Set<String> liveInstances) throws PersistenceException {
+        if (!liveInstances.contains(initiatorId)) {
+            // SLING-4617 : a voting, on a single instance, was created without the local instance
+            // this should in no case happen - the local instance should always be part of the live
+            // instances. if that's not the case, then something's fishy and we should not create
+            // the new voting - and instead rely on a retry later.
+            logger.warn("newVoting: liveInstances does not include initiatorId (local instance) - not creating new, invalid, voting");
+            return null;
+        }
         final Resource votingResource = ResourceHelper.getOrCreateResource(
                 resourceResolver, config.getOngoingVotingsPath() + "/"
                         + newViewId);