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/08/15 01:29:18 UTC

svn commit: r1696009 - in /lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene: bkdtree/ rangetree/

Author: mikemccand
Date: Fri Aug 14 23:29:17 2015
New Revision: 1696009

URL: http://svn.apache.org/r1696009
Log:
Range/BKDTree: add missing closing, when handling exc; add further asserts

Modified:
    lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/BKDTreeWriter.java
    lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/HeapLatLonWriter.java
    lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/OfflineLatLonWriter.java
    lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/HeapSliceWriter.java
    lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/OfflineSliceWriter.java
    lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/RangeTreeWriter.java

Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/BKDTreeWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/BKDTreeWriter.java?rev=1696009&r1=1696008&r2=1696009&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/BKDTreeWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/BKDTreeWriter.java Fri Aug 14 23:29:17 2015
@@ -220,7 +220,7 @@ class BKDTreeWriter {
       if (success) {
         IOUtils.close(sortedWriter, reader);
       } else {
-        IOUtils.closeWhileHandlingException(reader);
+        IOUtils.closeWhileHandlingException(sortedWriter, reader);
         try {
           sortedWriter.destroy();
         } catch (Throwable t) {
@@ -287,6 +287,7 @@ class BKDTreeWriter {
                       heapWriter.ords[i],
                       heapWriter.docIDs[i]);
       }
+      sorted.close();
 
       return sorted;
     } else {

Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/HeapLatLonWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/HeapLatLonWriter.java?rev=1696009&r1=1696008&r2=1696009&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/HeapLatLonWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/HeapLatLonWriter.java Fri Aug 14 23:29:17 2015
@@ -23,6 +23,7 @@ final class HeapLatLonWriter implements
   final int[] docIDs;
   final long[] ords;
   private int nextWrite;
+  private boolean closed;
 
   public HeapLatLonWriter(int count) {
     latEncs = new int[count];
@@ -42,11 +43,13 @@ final class HeapLatLonWriter implements
 
   @Override
   public LatLonReader getReader(long start) {
+    assert closed;
     return new HeapLatLonReader(latEncs, lonEncs, ords, docIDs, (int) start, latEncs.length);
   }
 
   @Override
   public void close() {
+    closed = true;
     if (nextWrite != latEncs.length) {
       throw new IllegalStateException("only wrote " + nextWrite + " values, but expected " + latEncs.length);
     }

Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/OfflineLatLonWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/OfflineLatLonWriter.java?rev=1696009&r1=1696008&r2=1696009&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/OfflineLatLonWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/bkdtree/OfflineLatLonWriter.java Fri Aug 14 23:29:17 2015
@@ -34,6 +34,7 @@ final class OfflineLatLonWriter implemen
   final OutputStreamDataOutput out;
   final long count;
   private long countWritten;
+  private boolean closed;
 
   public OfflineLatLonWriter(Path tempDir, long count) throws IOException {
     tempFile = Files.createTempFile(tempDir, "size" + count + ".", "");
@@ -52,11 +53,13 @@ final class OfflineLatLonWriter implemen
 
   @Override
   public LatLonReader getReader(long start) throws IOException {
+    assert closed;
     return new OfflineLatLonReader(tempFile, start, count-start);
   }
 
   @Override
   public void close() throws IOException {
+    closed = true;
     out.close();
     if (count != countWritten) {
       throw new IllegalStateException("wrote " + countWritten + " values, but expected " + count);

Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/HeapSliceWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/HeapSliceWriter.java?rev=1696009&r1=1696008&r2=1696009&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/HeapSliceWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/HeapSliceWriter.java Fri Aug 14 23:29:17 2015
@@ -22,6 +22,7 @@ final class HeapSliceWriter implements S
   final int[] docIDs;
   final long[] ords;
   private int nextWrite;
+  private boolean closed;
 
   public HeapSliceWriter(int count) {
     values = new long[count];
@@ -39,11 +40,13 @@ final class HeapSliceWriter implements S
 
   @Override
   public SliceReader getReader(long start) {
+    assert closed;
     return new HeapSliceReader(values, ords, docIDs, (int) start, values.length);
   }
 
   @Override
   public void close() {
+    closed = true;
     if (nextWrite != values.length) {
       throw new IllegalStateException("only wrote " + nextWrite + " values, but expected " + values.length);
     }

Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/OfflineSliceWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/OfflineSliceWriter.java?rev=1696009&r1=1696008&r2=1696009&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/OfflineSliceWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/OfflineSliceWriter.java Fri Aug 14 23:29:17 2015
@@ -33,6 +33,7 @@ final class OfflineSliceWriter implement
   final ByteArrayDataOutput scratchBytesOutput = new ByteArrayDataOutput(scratchBytes);      
   final OutputStreamDataOutput out;
   final long count;
+  private boolean closed;
   private long countWritten;
 
   public OfflineSliceWriter(Path tempDir, long count) throws IOException {
@@ -51,11 +52,13 @@ final class OfflineSliceWriter implement
 
   @Override
   public SliceReader getReader(long start) throws IOException {
+    assert closed;
     return new OfflineSliceReader(tempFile, start, count-start);
   }
 
   @Override
   public void close() throws IOException {
+    closed = true;
     out.close();
     if (count != countWritten) {
       throw new IllegalStateException("wrote " + countWritten + " values, but expected " + count);

Modified: lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/RangeTreeWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/RangeTreeWriter.java?rev=1696009&r1=1696008&r2=1696009&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/RangeTreeWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/sandbox/src/java/org/apache/lucene/rangetree/RangeTreeWriter.java Fri Aug 14 23:29:17 2015
@@ -188,7 +188,7 @@ class RangeTreeWriter {
       if (success) {
         IOUtils.close(sortedWriter, reader);
       } else {
-        IOUtils.closeWhileHandlingException(reader);
+        IOUtils.closeWhileHandlingException(sortedWriter, reader);
         try {
           sortedWriter.destroy();
         } catch (Throwable t) {
@@ -245,6 +245,7 @@ class RangeTreeWriter {
                       heapWriter.ords[i],
                       heapWriter.docIDs[i]);
       }
+      sorted.close();
 
       return sorted;
     } else {
@@ -468,6 +469,7 @@ class RangeTreeWriter {
         assert hasNext;
         writer.append(reader.value(), reader.ord(), reader.docID());
       }
+      writer.close();
       source = new PathSlice(writer, 0, count);
     }