Skip to content

Commit 70063d3

Browse files
santfiraxmminella
authored andcommitted
Fixed FlatFileItemReaderBuilder LineTokenizer validation
Fixed validation for the FlatFileItemReaderBuilder where no LineTokenizer had been provided. Resolves: #3688
1 parent efe30c6 commit 70063d3

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ public FlatFileItemReader<T> build() {
469469
reader.setLineMapper(this.lineMapper);
470470
}
471471
else {
472-
Assert.state(validatorValue == 1 || validatorValue == 2 || validatorValue == 4,
472+
Assert.state(validatorValue == 0 || validatorValue == 1 || validatorValue == 2 || validatorValue == 4,
473473
"Only one LineTokenizer option may be configured");
474474

475475
DefaultLineMapper<T> lineMapper = new DefaultLineMapper<>();

spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,18 @@ public void testErrorMessageWhenNoFieldSetMapperIsProvided() {
541541
assertEquals("No FieldSetMapper implementation was provided.", exceptionMessage);
542542
}
543543
}
544+
@Test
545+
public void testErrorMessageWhenNoLineTokenizerWasProvided() {
546+
try {
547+
new FlatFileItemReaderBuilder<Foo>()
548+
.name("fooReader")
549+
.resource(getResource("1;2;3"))
550+
.build();
551+
} catch (IllegalStateException exception) {
552+
String exceptionMessage = exception.getMessage();
553+
assertEquals("No LineTokenizer implementation was provided.", exceptionMessage);
554+
}
555+
}
544556

545557
private Resource getResource(String contents) {
546558
return new ByteArrayResource(contents.getBytes());

0 commit comments

Comments
 (0)