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 2015/01/13 16:25:56 UTC
svn commit: r1651380 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/cloud/DistributedQueue.java
Author: markrmiller
Date: Tue Jan 13 15:25:56 2015
New Revision: 1651380
URL: http://svn.apache.org/r1651380
Log:
SOLR-6941: DistributedQueue#containsTaskWithRequestId can fail with NPE.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1651380&r1=1651379&r2=1651380&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Tue Jan 13 15:25:56 2015
@@ -435,6 +435,8 @@ Bug Fixes
* SOLR-6923: AutoAddReplicas also consults live_nodes to see if a state change has happened.
(Varun Thacker via Anshum Gupta)
+* SOLR-6941: DistributedQueue#containsTaskWithRequestId can fail with NPE. (Mark Miller)
+
Optimizations
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java?rev=1651380&r1=1651379&r2=1651380&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/DistributedQueue.java Tue Jan 13 15:25:56 2015
@@ -122,10 +122,13 @@ public class DistributedQueue {
for (String childName : childNames) {
if (childName != null) {
try {
- ZkNodeProps message = ZkNodeProps.load(zookeeper.getData(dir + "/" + childName, null, null, true));
- if (message.containsKey(OverseerCollectionProcessor.ASYNC)) {
- LOG.info(">>>> {}", message.get(OverseerCollectionProcessor.ASYNC));
- if(message.get(OverseerCollectionProcessor.ASYNC).equals(requestId)) return true;
+ byte[] data = zookeeper.getData(dir + "/" + childName, null, null, true);
+ if (data != null) {
+ ZkNodeProps message = ZkNodeProps.load(data);
+ if (message.containsKey(OverseerCollectionProcessor.ASYNC)) {
+ LOG.debug(">>>> {}", message.get(OverseerCollectionProcessor.ASYNC));
+ if(message.get(OverseerCollectionProcessor.ASYNC).equals(requestId)) return true;
+ }
}
} catch (KeeperException.NoNodeException e) {
// Another client removed the node first, try next