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) {