Чтобы обнаружить, что обработчик элемента возвратил для элемента значение null, вы можете использовать org.springframework.batch.core.ItemProcessListener#afterProcess(Object item, Object result)
.Параметр result
является результатом обработки и может быть нулевым, если процессор вернул нулевое значение.
Теперь, если вы хотите завершить работу, когда процессор возвращает нулевое значение, вы можете вызвать исключение из этого метода.Вот пример:
class MyItemProcessListener implements ItemProcessListener {
@Override
public void beforeProcess(Object item) {
}
@Override
public void afterProcess(Object item, Object result) {
if (result == null) {
throw new RuntimeException("Failing job because processing of item " + item + " returned null");
}
}
@Override
public void onProcessError(Object item, Exception e) {
}
}
Если вы используете отказоустойчивый шаг, ориентированный на чанк, убедитесь, что исключение, которое вы выбрасываете из слушателя, не сконфигурировано как пропускаемое или повторяемое.
Надеюсь, что этопомогает.