You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by sh...@apache.org on 2008/12/11 09:25:39 UTC

svn commit: r725616 - in /lucene/solr/trunk: ./ contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/

Author: shalin
Date: Thu Dec 11 00:25:38 2008
New Revision: 725616

URL: http://svn.apache.org/viewvc?rev=725616&view=rev
Log:
SOLR-886 -- DataImportHandler should rollback when an import fails or it is aborted

Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SolrWriter.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=725616&r1=725615&r2=725616&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Thu Dec 11 00:25:38 2008
@@ -106,7 +106,9 @@
 22. SOLR-781: Distributed search ability to sort field.facet values
     lexicographically.  facet.sort values "true" and "false" are
     also deprecated and replaced with "count" and "lex".
-    (Lars Kotthoff via yonik
+    (Lars Kotthoff via yonik)
+
+23. SOLR-886: DataImportHandler should rollback when an import fails or it is aborted (shalin)
 
 Optimizations
 ----------------------

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java?rev=725616&r1=725615&r2=725616&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java Thu Dec 11 00:25:38 2008
@@ -319,6 +319,7 @@
         cumulativeStatistics.add(docBuilder.importStatistics);
     } catch (Throwable t) {
       LOG.error("Full Import failed", t);
+      docBuilder.rollback();
     } finally {
       setStatus(Status.IDLE);
       config.clearCaches();
@@ -342,6 +343,7 @@
         cumulativeStatistics.add(docBuilder.importStatistics);
     } catch (Throwable t) {
       LOG.error("Delta Import Failed", t);
+      docBuilder.rollback();
     } finally {
       setStatus(Status.IDLE);
       config.clearCaches();

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java?rev=725616&r1=725615&r2=725616&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java Thu Dec 11 00:25:38 2008
@@ -139,8 +139,8 @@
     if (stop.get()) {
       if (DataImporter.ABORT_CMD.equals(requestParameters.command)) {
         // Dont commit if aborted using command=abort
-        statusMessages.put("Aborted", DataImporter.DATE_TIME_FORMAT
-                .format(new Date()));
+        statusMessages.put("Aborted", DataImporter.DATE_TIME_FORMAT.format(new Date()));
+        rollback();
       } else if (requestParameters.commit) {
         // Debug mode, commit if commit=true was specified
         commit();
@@ -170,6 +170,12 @@
 
   }
 
+  void rollback() {
+    writer.rollback();
+    statusMessages.put("", "Indexing failed. Rolled back all changes.");
+    addStatusMessage("Rolledback");
+  }
+
   @SuppressWarnings("unchecked")
   private void doFullDump() {
     addStatusMessage("Full Dump Started");

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SolrWriter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SolrWriter.java?rev=725616&r1=725615&r2=725616&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SolrWriter.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SolrWriter.java Thu Dec 11 00:25:38 2008
@@ -20,6 +20,7 @@
 import org.apache.solr.update.AddUpdateCommand;
 import org.apache.solr.update.CommitUpdateCommand;
 import org.apache.solr.update.DeleteUpdateCommand;
+import org.apache.solr.update.RollbackUpdateCommand;
 import org.apache.solr.update.processor.UpdateRequestProcessor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -177,8 +178,17 @@
     try {
       CommitUpdateCommand commit = new CommitUpdateCommand(optimize);
       processor.processCommit(commit);
-    } catch (Exception e) {
-      log.error("Exception while solr commit.", e);
+    } catch (Throwable t) {
+      log.error("Exception while solr commit.", t);
+    }
+  }
+
+  public void rollback()  {
+    try {
+      RollbackUpdateCommand rollback = new RollbackUpdateCommand();
+      processor.processRollback(rollback);
+    } catch (Throwable t) {
+      log.error("Exception while solr rollback.", t);
     }
   }