Skip to content

Commit b45391a

Browse files
committed
Increment count before starting new file in ObjectFileWriter
To avoid overwriting first output file, e.g. when using batch-reset
1 parent 9cf783f commit b45391a

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

metafacture-io/src/main/java/org/metafacture/io/ObjectFileWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ public void process(final T obj) {
108108
@Override
109109
public void resetStream() {
110110
closeStream();
111-
startNewFile();
112111
++count;
112+
startNewFile();
113113
}
114114

115115
@Override

metafacture-io/src/test/java/org/metafacture/io/ObjectFileWriterTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.metafacture.io;
1818

1919
import static org.junit.Assert.assertArrayEquals;
20+
import static org.junit.Assert.assertTrue;
2021
import static org.junit.Assume.assumeFalse;
2122

2223
import java.io.File;
@@ -93,6 +94,17 @@ public void shouldAppendToExistingFile() throws IOException {
9394
assertOutput(DATA + "\n" + DATA + "\n");
9495
}
9596

97+
@Test
98+
public void shouldIncrementCountOnResetBeforeStartingNewFile() throws IOException {
99+
final String pathWithVar = tempFolder.getRoot() + "/test-${i}";
100+
writer = new ObjectFileWriter<String>(pathWithVar);
101+
writer.process(DATA);
102+
assertTrue(new File(tempFolder.getRoot(), "test-0").exists());
103+
writer.resetStream(); // increments count, starts new file
104+
writer.process(DATA);
105+
assertTrue(new File(tempFolder.getRoot(), "test-1").exists());
106+
}
107+
96108
@Override
97109
protected ConfigurableObjectWriter<String> getWriter() {
98110
return writer;

0 commit comments

Comments
 (0)