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 2013/05/15 19:01:49 UTC

svn commit: r1482955 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/cloud/ElectionContext.java

Author: markrmiller
Date: Wed May 15 17:01:49 2013
New Revision: 1482955

URL: http://svn.apache.org/r1482955
Log:
SOLR-4734: Leader election fails with an NPE if there is no UpdateLog

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1482955&r1=1482954&r2=1482955&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Wed May 15 17:01:49 2013
@@ -110,6 +110,9 @@ Bug Fixes
 
 * SOLR-4796: zkcli.sh should honor JAVA_HOME (Roman Shaposhnik via Mark Miller)
 
+* SOLR-4734: Leader election fails with an NPE if there is no UpdateLog.
+ (Mark Miller, Alexander Eibner)
+
 Other Changes
 ----------------------
 

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java?rev=1482955&r1=1482954&r2=1482955&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java Wed May 15 17:01:49 2013
@@ -172,8 +172,6 @@ final class ShardLeaderElectionContext e
       }
       
       log.info("I may be the new leader - try and sync");
-      
-      UpdateLog ulog = core.getUpdateHandler().getUpdateLog();
  
       
       // we are going to attempt to be the leader
@@ -187,7 +185,9 @@ final class ShardLeaderElectionContext e
         success = false;
       }
       
-      if (!success && ulog.getRecentUpdates().getVersions(1).isEmpty()) {
+      UpdateLog ulog = core.getUpdateHandler().getUpdateLog();
+      
+      if (!success && (ulog == null || ulog.getRecentUpdates().getVersions(1).isEmpty())) {
         // we failed sync, but we have no versions - we can't sync in that case
         // - we were active
         // before, so become leader anyway