Skip to content

Commit 86856be

Browse files
authored
Merge pull request #72 from eric-vlaanderen/fix_file_leak
Fix potential file handle leak and minor typo in settings.gradle - #71
2 parents e006cde + 3156b80 commit 86856be

3 files changed

Lines changed: 16 additions & 11 deletions

File tree

RCaller/settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
rootprojectt.name = 'RCaller'
1+
rootProject.name = 'RCaller'

RCaller/src/main/java/com/github/rcaller/io/CSVFileWriter.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,28 @@
22

33
import com.github.rcaller.datatypes.DataFrame;
44

5+
import java.io.File;
56
import java.io.FileWriter;
67
import java.io.IOException;
78

89
public class CSVFileWriter extends FileWriter{
910

10-
private CSVFileWriter(String filePath) throws IOException {
11+
private CSVFileWriter(final String filePath) throws IOException {
1112
super(filePath);
1213
}
1314

14-
public static CSVFileWriter create(String filePath) throws IOException {
15+
private CSVFileWriter(final File file) throws IOException {
16+
super(file);
17+
}
18+
19+
public static CSVFileWriter create(final String filePath) throws IOException {
1520
return new CSVFileWriter(filePath);
1621
}
1722

23+
public static CSVFileWriter create(final File file) throws IOException {
24+
return new CSVFileWriter(file);
25+
}
26+
1827
public void writeDataFrameToFile(DataFrame dataFrame) throws IOException {
1928
appendArray(dataFrame.getNames());
2029
for (int i = 0; i < dataFrame.getNumberOfRows(); i++) {
@@ -35,5 +44,4 @@ private void appendArray(Object[] array) throws IOException {
3544
this.flush();
3645
}
3746

38-
3947
}

RCaller/src/main/java/com/github/rcaller/util/RCodeUtils.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
import com.github.rcaller.scriptengine.LanguageElement;
88
import org.apache.commons.lang3.ArrayUtils;
99

10-
import java.io.File;
11-
import java.io.IOException;
12-
import java.io.BufferedReader;
13-
import java.io.InputStream;
14-
import java.io.InputStreamReader;
10+
import java.io.*;
1511
import java.util.logging.Level;
1612
import java.util.logging.Logger;
1713

@@ -211,8 +207,9 @@ public static void addRespectToType(StringBuilder rCode, String name, Object o,
211207
public static void addDataFrame(StringBuilder rCode, String name, DataFrame dataFrame) {
212208
try {
213209
File file = File.createTempFile("dataFrame", ".csv");
214-
CSVFileWriter csvFileWriter = CSVFileWriter.create(file.getAbsolutePath());
215-
csvFileWriter.writeDataFrameToFile(dataFrame);
210+
try (CSVFileWriter csvFileWriter = CSVFileWriter.create(file)) {
211+
csvFileWriter.writeDataFrameToFile(dataFrame);
212+
}
216213
rCode.append(name).append(" <- read.csv(\"").append(Globals.getSystemSpecificRPathParameter(file)).append("\")\n");
217214

218215
} catch (IOException e) {

0 commit comments

Comments
 (0)