Apache camel 如何在camel univocity固定解析器中允许较短的行?

Apache camel 如何在camel univocity固定解析器中允许较短的行?,apache-camel,univocity,Apache Camel,Univocity,我有这样的文件 12345678 12345678 123 我在UniVocityFixedWidthDataFormat上设置了两个标题,分别名为num1和num2,长度分别为5和3。解析器能够轻松地读取前两行,但它在第三行抛出空指针异常。如何让解析器也读取较短的行 这是stacktrace java.lang.NullPointerException: null at org.apache.camel.dataformat.univocity.Unmarshaller$MapRow

我有这样的文件

12345678
12345678
123
我在UniVocityFixedWidthDataFormat上设置了两个标题,分别名为num1和num2,长度分别为5和3。解析器能够轻松地读取前两行,但它在第三行抛出空指针异常。如何让解析器也读取较短的行

这是stacktrace

java.lang.NullPointerException: null
    at org.apache.camel.dataformat.univocity.Unmarshaller$MapRowIterator.convertRow(Unmarshaller.java:189) ~[camel-univocity-parsers-2.24.2.jar:2.24.2]
    at org.apache.camel.dataformat.univocity.Unmarshaller$MapRowIterator.convertRow(Unmarshaller.java:168) ~[camel-univocity-parsers-2.24.2.jar:2.24.2]
    at org.apache.camel.dataformat.univocity.Unmarshaller$RowIterator.next(Unmarshaller.java:117) ~[camel-univocity-parsers-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.Splitter$SplitterIterable$1.next(Splitter.java:203) ~[camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.Splitter$SplitterIterable$1.next(Splitter.java:179) ~[camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:307) ~[camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:246) ~[camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.Splitter.process(Splitter.java:129) ~[camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:454) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:223) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:187) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174) [camel-core-2.24.2.jar:2.24.2]
    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101) [camel-core-2.24.2.jar:2.24.2]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_211]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_211]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_211]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_211]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_211]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_211]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_211]

您使用哪种骆驼版本?你能发布NPE stacktrace吗。您是否研究过univocity的工作原理及其所有选项,以及camel文档?谢谢您的回复。实际上,我使用的是camel flatpack,但它在处理大文件时内存不足,然后我移动到univocity,因为univocity中有惰性选项,但找不到允许univocity中使用较短行的选项。我正在使用camel 2.24.2Okay,我们应该修复NPE,欢迎您记录JIRAsetting recordEndsOnNewline以真正解决我的问题。谢谢