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 cd5fa6310..b4ab4bced 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 @@ -449,7 +449,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 c82c0f1bd..a954f5d3c 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 @@ -536,6 +536,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());