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);
}
}