Author: stefanegli
Date: Mon May 27 12:14:38 2013
New Revision: 1486590

URL: http://svn.apache.org/r1486590
Log:
SLING-2885 : analyzeVotings must be synchronized - between HeartbeatHandler an 
VotingHandler/jcr observation

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

Modified: 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java?rev=1486590&r1=1486589&r2=1486590&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java
 (original)
+++ 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java
 Mon May 27 12:14:38 2013
@@ -124,9 +124,12 @@ public class VotingHandler implements Ev
     }
 
     /**
-     * Analyze any ongoing voting in the repository
+     * Analyze any ongoing voting in the repository.
+     * <p>
+     * SLING-2885: this method must be synchronized as it can be called 
concurrently
+     * by the HearbeatHandler.doCheckView and the VotingHandler.handleEvent.
      */
-    public void analyzeVotings(final ResourceResolver resourceResolver) throws 
PersistenceException {
+    public synchronized void analyzeVotings(final ResourceResolver 
resourceResolver) throws PersistenceException {
         VotingView winningVote = VotingHelper.getWinningVoting(
                 resourceResolver, config);
         if (winningVote != null) {


Reply via email to