Skip to content

Commit 46ff95f

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

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
@@ -449,7 +449,7 @@ public FlatFileItemReader<T> build() {
449449
reader.setLineMapper(this.lineMapper);
450450
}
451451
else {
452-
Assert.state(validatorValue == 1 || validatorValue == 2 || validatorValue == 4,
452+
Assert.state(validatorValue == 0 || validatorValue == 1 || validatorValue == 2 || validatorValue == 4,
453453
"Only one LineTokenizer option may be configured");
454454

455455
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
@@ -536,6 +536,18 @@ public void testErrorMessageWhenNoFieldSetMapperIsProvided() {
536536
assertEquals("No FieldSetMapper implementation was provided.", exceptionMessage);
537537
}
538538
}
539+
@Test
540+
public void testErrorMessageWhenNoLineTokenizerWasProvided() {
541+
try {
542+
new FlatFileItemReaderBuilder<Foo>()
543+
.name("fooReader")
544+
.resource(getResource("1;2;3"))
545+
.build();
546+
} catch (IllegalStateException exception) {
547+
String exceptionMessage = exception.getMessage();
548+
assertEquals("No LineTokenizer implementation was provided.", exceptionMessage);
549+
}
550+
}
539551

540552
private Resource getResource(String contents) {
541553
return new ByteArrayResource(contents.getBytes());

0 commit comments

Comments
 (0)