Пакет Spring: исключение без возможности пропуска в средстве восстановления во время обработки; java.lang.NullPointerException в FaultTolerantChunkProcessor.java:289
У меня есть одношаговые конфигурации, как показано ниже
stepBuilderFactory.get("step2")
.<EventLogWrapper, BaseCscEvent>chunk(100)
.reader(eventLogReader)
.processor(eventLogItemProcessor)
.writer(compositeItemWriter)
.faultTolerant().retryLimit(10).retry(Exception.class)
.stream(dataBaseItemWriter)
.stream(rabbitAmqpItemWriter)
.taskExecutor(taskExecutor())
.build();
Конфигурация My Reader приведена ниже
AmqpItemReader<EventLog> eventLogReader(AmqpTemplate eventLogReaderRabbitTemplate){
AmqpItemReader amqpItemReader = new AmqpItemReader<EventLog>(eventLogReaderRabbitTemplate);
amqpItemReader.setItemType(EventLogWrapper.class);
return amqpItemReader;
}
Я получаю одну периодическую ошибку, как показано ниже
ExitMessage org.springframework.retry.RetryException: исключение без возможности пропуска в средстве восстановления во время обработки; вложенным исключением является java.lang.NullPointerException в org.springframework.batch.core.step.item.FaultTolerantChunkProcessor$2.recover(FaultTolerantChunkProcessor.java:289) в org.springframework.retry.suppemplate.RetryTolerant) на org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:351) на org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:211) на org.spring.framework.batch item.BatchRetryTemplate.execute(BatchRetryTemplate.java:217) в org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.transform(FaultTolerantChunkProcessor.java:298) в org.springframework.Processor.java:298) в org.springframework.framework. процесс (SimpleChunkProcessor.java:210) в org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:77) на org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionSactionSactionSactionCallpack.TaskletStep $ ChunkTransaction. 407) в org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:331) в org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate..batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:273) в org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java.spring).repeat.support.TaskExecutorRepeatTemplate$ExecutingRunnable.run(TaskExecutorRepeatTemplate.java:262) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) в java.lang.Thread.run(Thread.java:748) Вызвано: java.lang.NullPo
В чем причина такого поведения?
Что мне делать, чтобы решить эту проблему?
Спасибо за прочтение!