Date un'occhiata all'interfaccia org.springframework.batch.core.step.skip.SkipPolicy. Vi do un esempio estratto da Pro Spring Batch written by T. Minella
import java.io.FileNotFoundException;
import org.springframework.batch.core.step.skip.SkipLimitExceededException;
import org.springframework.batch.core.step.skip.SkipPolicy;
import org.springframework.batch.item.ParseException;
public class FileVerificationSkipper implements SkipPolicy {
public boolean shouldSkip(Throwable exception, int skipCount) throws SkipLimitExceededException {
if(exception instanceof FileNotFoundException) {
return false;
} else if(exception instanceof ParseException && skipCount <= 10) {
return true;
} else {
return false;
}
}
}
Dentro il file xml:
<step id="copyFileStep">
<tasklet>
<chunk reader="customerItemReader" writer="outputWriter"
commit-interval="10" skip-limit="10">
<skippable-exception-classes>
<include class="java.lang.Exception"/>
<exclude class="org.springframework.batch.item.ParseException"/>
</skippable-exception-classes>
</chunk>
</tasklet>
</step>
O forse un altro modo potrebbe essere quella di aggiungere all'inizio del tuo lavoro un passo wich ordinare i file di input in due cartella separata. All'interno di una cartella avrai tutti i file sbagliati e all'interno dell'altra cartella rimarranno solo quelli buoni.
Parte del codice potrebbe essere d'aiuto. – Kenneth