Author: jbellis Date: Wed Mar 9 20:43:55 2011 New Revision: 1079984 URL: http://svn.apache.org/viewvc?rev=1079984&view=rev Log: add ant.test.failure.ignore property to optionally allow codecoverage to complete even if tests error out patch by Stephen Connolly; tested by jbellis for CASSANDRA-2298
Modified: cassandra/branches/cassandra-0.7/build.xml cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java Modified: cassandra/branches/cassandra-0.7/build.xml URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/build.xml?rev=1079984&r1=1079983&r2=1079984&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/build.xml (original) +++ cassandra/branches/cassandra-0.7/build.xml Wed Mar 9 20:43:55 2011 @@ -559,7 +559,16 @@ <fileset dir="@{inputdir}" includes="@{filter}" /> </batchtest> </junit> - <fail if="testfailed" message="Some @{suitename} test(s) failed."/> + <fail message="Some @{suitename} test(s) failed."> + <condition> + <and> + <isset property="testfailed"/> + <not> + <isset property="ant.test.failure.ignore"/> + </not> + </and> + </condition> + </fail> </sequential> </macrodef> Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1079984&r1=1079983&r2=1079984&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java Wed Mar 9 20:43:55 2011 @@ -927,7 +927,7 @@ public class CompactionManager implement return executor.submit(runnable); } - public Future<SSTableReader> submitSSTableBuild(Descriptor desc) + public Future<SSTableReader> submitSSTableBuild(final Descriptor desc) { // invalid descriptions due to missing or dropped CFS are handled by SSTW and StreamInSession. final SSTableWriter.Builder builder = SSTableWriter.createBuilder(desc); @@ -938,7 +938,7 @@ public class CompactionManager implement compactionLock.lock(); try { - executor.beginCompaction(builder.cfs.columnFamily, builder); + executor.beginCompaction(desc.cfname, builder); return builder.build(); } finally Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1079984&r1=1079983&r2=1079984&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java Wed Mar 9 20:43:55 2011 @@ -244,7 +244,7 @@ public class SSTableWriter extends SSTab public static class Builder implements ICompactionInfo { private final Descriptor desc; - public final ColumnFamilyStore cfs; + private final ColumnFamilyStore cfs; private BufferedRandomAccessFile dfile; public Builder(Descriptor desc) @@ -252,6 +252,14 @@ public class SSTableWriter extends SSTab this.desc = desc; cfs = Table.open(desc.ksname).getColumnFamilyStore(desc.cfname); + } + + // lazy-initialize the file to avoid opening it until it's actually executing on the CompactionManager, + // since the 8MB buffers can use up heap quickly + private void maybeOpenFile() + { + if (dfile != null) + return; try { dfile = new BufferedRandomAccessFile(new File(desc.filenameFor(SSTable.COMPONENT_DATA)), "r", 8 * 1024 * 1024, true); @@ -266,6 +274,8 @@ public class SSTableWriter extends SSTab { if (cfs.isInvalid()) return null; + maybeOpenFile(); + File ifile = new File(desc.filenameFor(SSTable.COMPONENT_INDEX)); File ffile = new File(desc.filenameFor(SSTable.COMPONENT_FILTER)); assert !ifile.exists(); @@ -332,8 +342,10 @@ public class SSTableWriter extends SSTab public long getTotalBytes() { + maybeOpenFile(); try { + // (length is still valid post-close) return dfile.length(); } catch (IOException e) @@ -344,6 +356,8 @@ public class SSTableWriter extends SSTab public long getBytesComplete() { + maybeOpenFile(); + // (getFilePointer is still valid post-close) return dfile.getFilePointer(); }