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 2009/02/11 16:18:16 UTC
svn commit: r743359 - in /lucene/solr/trunk/src:
java/org/apache/solr/update/DirectUpdateHandler2.java
test/org/apache/solr/update/DirectUpdateHandlerTest.java
Author: shalin
Date: Wed Feb 11 15:18:16 2009
New Revision: 743359
URL: http://svn.apache.org/viewvc?rev=743359&view=rev
Log:
SOLR-670 followup -- No need to do commit after calling rollback, also avoids AlreadyClosedException if commit is not called after rollback
Modified:
lucene/solr/trunk/src/java/org/apache/solr/update/DirectUpdateHandler2.java
lucene/solr/trunk/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/update/DirectUpdateHandler2.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/DirectUpdateHandler2.java?rev=743359&r1=743358&r2=743359&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/update/DirectUpdateHandler2.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/update/DirectUpdateHandler2.java Wed Feb 11 15:18:16 2009
@@ -185,8 +185,12 @@
// must only be called when iwCommit lock held
protected void rollbackWriter() throws IOException {
- numDocsPending.set(0);
- if (writer!=null) writer.rollback();
+ try {
+ numDocsPending.set(0);
+ if (writer!=null) writer.rollback();
+ } finally {
+ writer = null;
+ }
}
public int addDoc(AddUpdateCommand cmd) throws IOException {
Modified: lucene/solr/trunk/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java?rev=743359&r1=743358&r2=743359&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java Wed Feb 11 15:18:16 2009
@@ -173,7 +173,6 @@
// rollback "B"
RollbackUpdateCommand rbkCmd = new RollbackUpdateCommand();
updater.rollback(rbkCmd);
- updater.commit(cmtCmd);
// search - "B" should not be found.
Map<String,String> args = new HashMap<String, String>();
@@ -184,6 +183,15 @@
,"//*[@numFound='1']"
,"//result/doc[1]/int[@name='id'][.='A']"
);
+
+ // Add a doc after the rollback to make sure we can continue to add/delete documents
+ // after a rollback as normal
+ addSimpleDoc("ZZZ");
+ assertU(commit());
+ assertQ("\"ZZZ\" must be found.", req("q", "id:ZZZ")
+ ,"//*[@numFound='1']"
+ ,"//result/doc[1]/int[@name='id'][.='ZZZ']"
+ );
}
public void testDeleteRollback() throws Exception {
@@ -221,7 +229,6 @@
// rollback "B"
RollbackUpdateCommand rbkCmd = new RollbackUpdateCommand();
updater.rollback(rbkCmd);
- updater.commit(cmtCmd);
// search - "B" should be found.
assertQ("\"B\" should be found.", req
@@ -229,6 +236,15 @@
,"//result/doc[1]/int[@name='id'][.='A']"
,"//result/doc[2]/int[@name='id'][.='B']"
);
+
+ // Add a doc after the rollback to make sure we can continue to add/delete documents
+ // after a rollback as normal
+ addSimpleDoc("ZZZ");
+ assertU(commit());
+ assertQ("\"ZZZ\" must be found.", req("q", "id:ZZZ")
+ ,"//*[@numFound='1']"
+ ,"//result/doc[1]/int[@name='id'][.='ZZZ']"
+ );
}
private void addSimpleDoc(String id) throws Exception {