You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2013/07/01 18:33:56 UTC
svn commit: r1498554 -
/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
Author: yonik
Date: Mon Jul 1 16:33:55 2013
New Revision: 1498554
URL: http://svn.apache.org/r1498554
Log:
SOLR-4926: SolrDeletionPolicy.getLatestCommit can be null before IW is used
Modified:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java?rev=1498554&r1=1498553&r2=1498554&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java Mon Jul 1 16:33:55 2013
@@ -318,8 +318,25 @@ public class SnapPuller {
long latestVersion = (Long) response.get(CMD_INDEX_VERSION);
long latestGeneration = (Long) response.get(GENERATION);
+ // TODO: make sure that getLatestCommit only returns commit points for the main index (i.e. no side-car indexes)
IndexCommit commit = core.getDeletionPolicy().getLatestCommit();
-
+ if (commit == null) {
+ // Presumably the IndexWriter hasn't been opened yet, and hence the deletion policy hasn't been updated with commit points
+ RefCounted<SolrIndexSearcher> searcherRefCounted = null;
+ try {
+ searcherRefCounted = core.getNewestSearcher(false);
+ if (searcherRefCounted == null) {
+ LOG.warn("No open searcher found - fetch aborted");
+ return false;
+ }
+ commit = searcherRefCounted.get().getIndexReader().getIndexCommit();
+ } finally {
+ if (searcherRefCounted != null)
+ searcherRefCounted.decref();
+ }
+ }
+
+
if (latestVersion == 0L) {
if (forceReplication && commit.getGeneration() != 0) {
// since we won't get the files for an empty index,