Skip to content

Commit

Permalink
ALS-6511: Fix refactoring bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ramari16 committed Jul 22, 2024
1 parent 79fee23 commit 1a3fd09
Showing 6 changed files with 25 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -11,7 +11,6 @@
public class ResultStoreStream extends InputStream {

private ResultWriter writer;
private File tempFile;
private InputStream in;
private int value;
private boolean streamIsClosed = false;
@@ -79,10 +78,10 @@ public void close() {

public void open() {
try {
in = new BufferedInputStream(new FileInputStream(tempFile.getAbsolutePath()), 1024 * 1024 * 8);
in = new BufferedInputStream(new FileInputStream(writer.getFile().getAbsolutePath()), 1024 * 1024 * 8);
streamIsClosed = false;
} catch (FileNotFoundException e) {
throw new RuntimeException("temp file for result not found : " + tempFile.getAbsolutePath());
throw new RuntimeException("temp file for result not found : " + writer.getFile().getAbsolutePath());
}
}

@@ -106,7 +105,7 @@ int getNumRows() {
}

public long estimatedSize() {
return tempFile.length();
return writer.getFile().length();
}

}
Original file line number Diff line number Diff line change
@@ -13,7 +13,10 @@ public class CsvWriter implements ResultWriter {

private final FileWriter fileWriter;

private final File file;

public CsvWriter(File file) {
this.file = file;
csvWriter = new de.siegmar.fastcsv.writer.CsvWriter();
try {
this.fileWriter = new FileWriter(file);
@@ -41,6 +44,11 @@ public void writeEntity(Collection<String[]> data) {
}
}

@Override
public File getFile() {
return file;
}

@Override
public void close() throws IOException {
fileWriter.close();
Original file line number Diff line number Diff line change
@@ -26,7 +26,8 @@ public class PfbWriter implements ResultWriter {
private Schema entitySchema;
private Schema patientDataSchema;

public PfbWriter() {
public PfbWriter(File tempFile) {
file = tempFile;
entityFieldAssembler = SchemaBuilder.record("entity")
.namespace("edu.harvard.dbmi")
.fields();
@@ -64,7 +65,6 @@ public void writeHeader(String[] data) {
DatumWriter<GenericRecord> datumWriter = new GenericDatumWriter<GenericRecord>(entitySchema);
dataFileWriter = new DataFileWriter<GenericRecord>(datumWriter);
try {
file = File.createTempFile("result-"+ System.nanoTime(), ".avro");
dataFileWriter.create(entitySchema, file);
} catch (IOException e) {
throw new UncheckedIOException(e);
@@ -136,4 +136,9 @@ public void close() {
throw new UncheckedIOException(e);
}
}

@Override
public File getFile() {
return file;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package edu.harvard.hms.dbmi.avillach.hpds.processing.io;

import java.io.File;
import java.io.IOException;
import java.util.Collection;

@@ -8,5 +9,7 @@ public interface ResultWriter {

void writeEntity(Collection<String[]> data);

File getFile();

void close() throws IOException;
}
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;

import java.io.File;
import java.util.List;

import static org.junit.jupiter.api.Assertions.*;
@@ -13,7 +14,7 @@ public class PfbWriterTest {

@Test
public void writeValidPFB() {
PfbWriter pfbWriter = new PfbWriter();
PfbWriter pfbWriter = new PfbWriter(new File("target/test-result.avro"));

pfbWriter.writeHeader(new String[] {"\\demographics\\age\\", "\\phs123\\stroke\\"});
pfbWriter.writeEntity(List.of(new String[]{"80", "Y"},
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@

import edu.harvard.hms.dbmi.avillach.hpds.data.query.ResultType;
import edu.harvard.hms.dbmi.avillach.hpds.processing.io.CsvWriter;
import edu.harvard.hms.dbmi.avillach.hpds.processing.io.PfbWriter;
import edu.harvard.hms.dbmi.avillach.hpds.processing.io.ResultWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -136,7 +137,7 @@ private AsyncResult initializeResult(Query query) throws ClassNotFoundException,

ResultWriter writer;
if (ResultType.DATAFRAME_PFB.equals(query.getExpectedResultType())) {
writer = new CsvWriter(File.createTempFile("result-" + query.getId(), ".avro"));
writer = new PfbWriter(File.createTempFile("result-" + query.getId(), ".avro"));
} else {
writer = new CsvWriter(File.createTempFile("result-" + System.nanoTime(), ".sstmp"));
}

0 comments on commit 1a3fd09

Please sign in to comment.