diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java index 44696c16f..d3222779b 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilder.java @@ -469,7 +469,7 @@ public class FlatFileItemReaderBuilder { reader.setLineMapper(this.lineMapper); } else { - Assert.state(validatorValue == 1 || validatorValue == 2 || validatorValue == 4, + Assert.state(validatorValue == 0 || validatorValue == 1 || validatorValue == 2 || validatorValue == 4, "Only one LineTokenizer option may be configured"); DefaultLineMapper lineMapper = new DefaultLineMapper<>(); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java index b1f8ef6b3..7643a785d 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/builder/FlatFileItemReaderBuilderTests.java @@ -541,6 +541,18 @@ public class FlatFileItemReaderBuilderTests { assertEquals("No FieldSetMapper implementation was provided.", exceptionMessage); } } + @Test + public void testErrorMessageWhenNoLineTokenizerWasProvided() { + try { + new FlatFileItemReaderBuilder() + .name("fooReader") + .resource(getResource("1;2;3")) + .build(); + } catch (IllegalStateException exception) { + String exceptionMessage = exception.getMessage(); + assertEquals("No LineTokenizer implementation was provided.", exceptionMessage); + } + } private Resource getResource(String contents) { return new ByteArrayResource(contents.getBytes());