You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2015/02/04 22:05:57 UTC

svn commit: r1657398 - in /lucene/dev/trunk/lucene: ./ core/src/java/org/apache/lucene/index/ core/src/test/org/apache/lucene/codecs/compressing/ core/src/test/org/apache/lucene/index/

Author: mikemccand
Date: Wed Feb  4 21:05:57 2015
New Revision: 1657398

URL: http://svn.apache.org/r1657398
Log:
LUCENE-6217: add IW.isOpen and IW.getTragicException

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1657398&r1=1657397&r2=1657398&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Wed Feb  4 21:05:57 2015
@@ -65,6 +65,9 @@ API Changes
 * LUCENE-6204, LUCENE-6208: Simplify CompoundFormat: remove files()
   and remove files parameter to write(). (Robert Muir)
 
+* LUCENE-6217: Add IndexWriter.isOpen and getTragicException.  (Simon
+  Willnauer, Mike McCandless)
+
 Other
 
 * LUCENE-6193: Collapse identical catch branches in try-catch statements.

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1657398&r1=1657397&r2=1657398&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Wed Feb  4 21:05:57 2015
@@ -4390,6 +4390,18 @@ public class IndexWriter implements Clos
     IOUtils.reThrow(tragedy);
   }
 
+  /** If this {@code IndexWriter} was closed as a side-effect of a tragic exception,
+   *  e.g. disk full while flushing a new segment, this returns the root cause exception.
+   *  Otherwise (no tragic exception has occurred) it returns null. */
+  public Throwable getTragicException() {
+    return tragedy;
+  }
+
+  /** Returns {@code true} if this {@code IndexWriter} is still open. */
+  public boolean isOpen() {
+    return closing == false && closed == false;
+  }
+
   // Used for testing.  Current points:
   //   startDoFlush
   //   startCommitMerge

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java?rev=1657398&r1=1657397&r2=1657398&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java Wed Feb  4 21:05:57 2015
@@ -54,7 +54,6 @@ public class TestCompressingStoredFields
     return CompressingCodec.randomInstance(random());
   }
 
-  @Test(expected=IllegalArgumentException.class)
   public void testDeletePartiallyWrittenFilesIfAbort() throws IOException {
     Directory dir = newDirectory();
     // test explicitly needs files to always be actually deleted
@@ -94,11 +93,13 @@ public class TestCompressingStoredFields
     try {
       iw.addDocument(invalidDoc);
       iw.commit();
+    } catch(IllegalArgumentException iae) {
+      // expected
+      assertEquals(iae, iw.getTragicException());
     }
-    finally {
-      // Abort should have closed the deleter:
-      dir.close();
-    }
+    // Writer should be closed by tragedy
+    assertFalse(iw.isOpen());
+    dir.close();
   }
 
   public void testZFloat() throws Exception {

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1657398&r1=1657397&r2=1657398&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Wed Feb  4 21:05:57 2015
@@ -1520,6 +1520,7 @@ public class TestIndexWriterExceptions e
       iw.addDocument(doc);
       fail("didn't get expected exception");
     } catch (IllegalArgumentException expected) {}
+    assertNull(iw.getTragicException());
     iw.close();
     // make sure we see our good doc
     DirectoryReader r = DirectoryReader.open(dir);
@@ -1544,6 +1545,7 @@ public class TestIndexWriterExceptions e
       iw.addDocument(doc);
       fail("didn't get expected exception");
     } catch (IllegalArgumentException expected) {}
+    assertNull(iw.getTragicException());
     iw.close();
     // make sure we see our good doc
     DirectoryReader r = DirectoryReader.open(dir);
@@ -1569,6 +1571,7 @@ public class TestIndexWriterExceptions e
       iw.addDocument(doc);
       fail("didn't get expected exception");
     } catch (NullPointerException expected) {}
+    assertNull(iw.getTragicException());
     iw.close();
     // make sure we see our good doc
     DirectoryReader r = DirectoryReader.open(dir);
@@ -1594,6 +1597,7 @@ public class TestIndexWriterExceptions e
       iw.addDocument(doc);
       fail("didn't get expected exception");
     } catch (NullPointerException expected) {}
+    assertNull(iw.getTragicException());
     iw.close();
     // make sure we see our good doc
     DirectoryReader r = DirectoryReader.open(dir);
@@ -1619,6 +1623,7 @@ public class TestIndexWriterExceptions e
       iw.addDocument(doc);
       fail("didn't get expected exception");
     } catch (IllegalArgumentException expected) {}
+    assertNull(iw.getTragicException());
     iw.close();
     // make sure we see our good doc
     DirectoryReader r = DirectoryReader.open(dir);
@@ -1644,6 +1649,7 @@ public class TestIndexWriterExceptions e
       iw.addDocument(doc);
       fail("didn't get expected exception");
     } catch (IllegalArgumentException expected) {}
+    assertNull(iw.getTragicException());
     iw.close();
     // make sure we see our good doc
     DirectoryReader r = DirectoryReader.open(dir);
@@ -1675,6 +1681,7 @@ public class TestIndexWriterExceptions e
       iw.addDocument(doc);
       fail("didn't get expected exception");
     } catch (IllegalArgumentException expected) {}
+    assertNull(iw.getTragicException());
     iw.close();
 
     // make sure we see our good doc