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