RESOLVED: BATCH-732 FlatFileItemReader ignores skipped lines on restart

This commit is contained in:
dsyer
2008-07-17 17:06:33 +00:00
parent cb5584bc1d
commit 074ea01681
2 changed files with 75 additions and 1 deletions

View File

@@ -170,4 +170,77 @@ public class FlatFileItemReaderAdvancedTests extends TestCase {
+ ".read.count"));
}
public void testRestartWithHeader() throws Exception {
reader.close(null);
reader.setResource(getInputResource("header\ntestLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
reader.setFirstLineIsHeader(true);
reader.open(executionContext);
// read some records
reader.read();
reader.read();
// commit them
reader.mark();
// read next two records
reader.read();
reader.read();
// get restart data
reader.update(executionContext);
assertEquals(4, executionContext.getLong(ClassUtils.getShortName(FlatFileItemReader.class)
+ ".read.count"));
// close input
reader.close(executionContext);
reader.setResource(getInputResource("header\ntestLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
// init for restart
reader.open(executionContext);
// read remaining records
assertEquals("[testLine5]", reader.read().toString());
assertEquals("[testLine6]", reader.read().toString());
reader.update(executionContext);
assertEquals(6, executionContext.getLong(ClassUtils.getShortName(FlatFileItemReader.class)
+ ".read.count"));
}
public void testRestartWithSkippedLines() throws Exception {
reader.close(null);
reader.setResource(getInputResource("header\nignoreme\n\ntestLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
reader.setLinesToSkip(2);
reader.open(executionContext);
// read some records
reader.read();
reader.read();
// commit them
reader.mark();
// read next two records
reader.read();
reader.read();
// get restart data
reader.update(executionContext);
assertEquals(4, executionContext.getLong(ClassUtils.getShortName(FlatFileItemReader.class)
+ ".read.count"));
// close input
reader.close(executionContext);
reader.setResource(getInputResource("header\nignoreme\ntestLine1\ntestLine2\ntestLine3\ntestLine4\ntestLine5\ntestLine6"));
// init for restart
reader.open(executionContext);
// read remaining records
assertEquals("[testLine5]", reader.read().toString());
assertEquals("[testLine6]", reader.read().toString());
reader.update(executionContext);
assertEquals(6, executionContext.getLong(ClassUtils.getShortName(FlatFileItemReader.class)
+ ".read.count"));
}
}