public interface ItemReader<T>
read()returning a different value and finally returning
nullwhen all input data is exhausted.
ItemReaderneed to be aware that this is the case.
@Nullable T read() throws java.lang.Exception, UnexpectedInputException, ParseException, NonTransientResourceException
nullat the end of the input data set. In a transactional setting, caller might get the same item twice from successive calls (or otherwise), if the first call was in a transaction that rolled back.
nullif the data source is exhausted
ParseException- if there is a problem parsing the current record (but the next one may still be valid)
NonTransientResourceException- if there is a fatal exception in the underlying resource. After throwing this exception implementations should endeavour to return null from subsequent calls to read.
UnexpectedInputException- if there is an uncategorised problem with the input data. Assume potentially transient, so subsequent calls to read might succeed.
java.lang.Exception- if an there is a non-specific error.