Lines are skipped here, but outCount is never incremented for these lines. outCount is used to generate the line number of malformed lines in the report. So if you have a malformed line after sipped lines, the report will have an incorrect line number.

Possible fix for this is to pass listReader.getLineNumber() when you create the callback and when you generate error messages.