Class ExceptionThrowingItemReaderProxy<T>
- java.lang.Object
- org.springframework.batch.sample.support.ExceptionThrowingItemReaderProxy<T>
- All Implemented Interfaces:
ItemReader<T>
public class ExceptionThrowingItemReaderProxy<T> extends java.lang.Object implements ItemReader<T>
HackedItemReader
that throws exception on a given record number (useful for testing restart).- Author:
- Robert Kasanicky, Lucas Ward
Constructor Summary
Constructors Constructor Description ExceptionThrowingItemReaderProxy()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
read()
Reads a piece of input data and advance to the next one.void
setDelegate(ItemReader<T> delegate)
void
setThrowExceptionOnRecordNumber(int throwExceptionOnRecordNumber)
Method Detail
setThrowExceptionOnRecordNumber
public void setThrowExceptionOnRecordNumber(int throwExceptionOnRecordNumber)
- Parameters:
throwExceptionOnRecordNumber
- The number of record on which exception should be thrown
read
public T read() throws java.lang.Exception
Description copied from interface:ItemReader
Reads a piece of input data and advance to the next one. Implementations must returnnull
at 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.- Specified by:
read
in interfaceItemReader<T>
- Returns:
- T the item to be processed or
null
if the data source is exhausted - Throws:
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.
setDelegate
public void setDelegate(ItemReader<T> delegate)