You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2012/02/22 01:41:15 UTC
svn commit: r1292093 -
/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java
Author: markrmiller
Date: Wed Feb 22 00:41:15 2012
New Revision: 1292093
URL: http://svn.apache.org/viewvc?rev=1292093&view=rev
Log:
protect access with sync
Modified:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java?rev=1292093&r1=1292092&r2=1292093&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java Wed Feb 22 00:41:15 2012
@@ -494,9 +494,9 @@ public class Overseer implements NodeSta
try {
List<String> liveNodes = zkClient.getChildren(
ZkStateReader.LIVE_NODES_ZKNODE, this, true);
- Set<String> liveNodesSet = new HashSet<String>();
- liveNodesSet.addAll(liveNodes);
- processLiveNodesChanged(nodeStateWatches.keySet(), liveNodes);
+ synchronized (nodeStateWatches) {
+ processLiveNodesChanged(nodeStateWatches.keySet(), liveNodes);
+ }
} catch (KeeperException e) {
if (e.code() == KeeperException.Code.SESSIONEXPIRED
|| e.code() == KeeperException.Code.CONNECTIONLOSS) {
@@ -528,7 +528,9 @@ public class Overseer implements NodeSta
Set<String> downNodes = complement(oldLiveNodes, liveNodes);
for(String node: downNodes) {
- NodeStateWatcher watcher = nodeStateWatches.remove(node);
+ synchronized (nodeStateWatches) {
+ NodeStateWatcher watcher = nodeStateWatches.remove(node);
+ }
log.debug("Removed NodeStateWatcher for node:" + node);
}
}