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]/i...@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]/i...@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]/i...@name='id'][.='A']"
,"//result/doc[2]/i...@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]/i...@name='id'][.='ZZZ']"
+ );
}
private void addSimpleDoc(String id) throws Exception {