Author: slebresne
Date: Mon Oct 10 13:44:59 2011
New Revision: 1180958
URL: http://svn.apache.org/viewvc?rev=1180958&view=rev
Log:
Make SSTW.RowIndexer.iwriter a final field to avoid NPE
patch by slebresne; reviewed by jbellis for CASSANDRA-2863
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1180958&r1=1180957&r2=1180958&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Mon Oct 10 13:44:59 2011
@@ -1,5 +1,6 @@
0.8.8
* fix truncate allowing data to be replayed post-restart (CASSANDRA-3297)
+ * make iwriter final in IndexWriter to avoid NPE (CASSANDRA-2863)
0.8.7
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1180958&r1=1180957&r2=1180958&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
Mon Oct 10 13:44:59 2011
@@ -302,19 +302,18 @@ public class SSTableWriter extends SSTab
{
if (cfs.isInvalid())
return null;
- maybeOpenIndexer();
File ifile = new File(desc.filenameFor(SSTable.COMPONENT_INDEX));
File ffile = new File(desc.filenameFor(SSTable.COMPONENT_FILTER));
assert !ifile.exists();
assert !ffile.exists();
- long estimatedRows = indexer.prepareIndexing();
+ maybeOpenIndexer();
// build the index and filter
long rows = indexer.index();
- logger.debug("estimated row count was {} of real count",
((double)estimatedRows) / rows);
+ logger.debug("estimated row count was {} of real count",
((double)indexer.estimatedRows) / rows);
return SSTableReader.open(rename(desc, SSTable.componentsFor(desc,
false)));
}
}
@@ -324,8 +323,9 @@ public class SSTableWriter extends SSTab
protected final Descriptor desc;
public final BufferedRandomAccessFile dfile;
private final OperationType type;
+ protected final IndexWriter iwriter;
+ public final long estimatedRows;
- protected IndexWriter iwriter;
protected ColumnFamilyStore cfs;
RowIndexer(Descriptor desc, ColumnFamilyStore cfs, OperationType type)
throws IOException
@@ -339,16 +339,11 @@ public class SSTableWriter extends SSTab
this.dfile = dfile;
this.type = type;
this.cfs = cfs;
- }
- long prepareIndexing() throws IOException
- {
- long estimatedRows;
try
{
- estimatedRows = SSTable.estimateRowsFromData(desc, dfile);
- iwriter = new IndexWriter(desc,
StorageService.getPartitioner(), estimatedRows);
- return estimatedRows;
+ this.estimatedRows = SSTable.estimateRowsFromData(desc, dfile);
+ this.iwriter = new IndexWriter(desc,
StorageService.getPartitioner(), estimatedRows);
}
catch(IOException e)
{