in src/main/java/com/univocity/parsers/common/Internal.java [28:59]
public static final <C extends Context> void process(String[] row, Processor<C> processor, C context, ProcessorErrorHandler<C> errorHandler) {
try {
processor.rowProcessed(row, context);
} catch (DataProcessingException ex) {
ex.setContext(context);
if (!ex.isFatal() && !ex.isHandled() && ex.getColumnIndex() > -1 && errorHandler instanceof RetryableErrorHandler) {
RetryableErrorHandler retry = ((RetryableErrorHandler) errorHandler);
ex.markAsHandled(errorHandler);
retry.handleError(ex, row, context);
if (!retry.isRecordSkipped()) {
try {
processor.rowProcessed(row, context);
return;
} catch (DataProcessingException e) {
ex = e;
} catch (Throwable t) {
throwDataProcessingException(processor, t, row, context.errorContentLength());
}
}
}
ex.setErrorContentLength(context.errorContentLength());
if (ex.isFatal()) {
throw ex;
}
ex.markAsHandled(errorHandler);
errorHandler.handleError(ex, row, context);
} catch (Throwable t) {
throwDataProcessingException(processor, t, row, context.errorContentLength());
}
}