Согласно CSV RF C, раздел 2.7, ваш файл CSV недействителен. Вот выдержка из спецификации:
Если для заключения полей используются двойные кавычки, то двойные кавычки внутри поля должны быть экранированы, поставив перед ними другую двойную кавычку
Если вы избежите "
, как указано в RF C, Spring Batch правильно токенизирует строку, вот быстрый (проходной) тест с v4.2.2:
@Test
public void testSo61636078() {
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
tokenizer.setDelimiter("|");
tokenizer.setQuoteCharacter('"');
FieldSet fieldSet = tokenizer.tokenize("\"name1\"|\"name2\"|\"na\"\"me3\"|\"name4\"");
assertEquals(4, fieldSet.getFieldCount());
assertEquals("name1", fieldSet.readString(0));
assertEquals("name2", fieldSet.readString(1));
assertEquals("na\"me3", fieldSet.readString(2));
assertEquals("name4", fieldSet.readString(3));
}