[
https://issues.apache.org/jira/browse/CSV-195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15473711#comment-15473711
]
Michael Vitz commented on CSV-195:
----------------------------------
After some digging I think that the record isn't processed twice. The test is
green (processes exactly 27 records) but prints 'Processing 27' twice. My best
guess is that the implementation of 'getCurrentLineNumber' has a bug when the
last record isn't ended with a CR or LF but an EOF.
> Parser iterates over the last CSV Record twice.
> -----------------------------------------------
>
> Key: CSV-195
> URL: https://issues.apache.org/jira/browse/CSV-195
> Project: Commons CSV
> Issue Type: Bug
> Components: Parser
> Affects Versions: 1.4
> Environment: Mac OS X 10.10.5
> Reporter: Rodolfo Duldulao
> Fix For: Patch Needed
>
> Attachments: whitelist.csv
>
>
> {code:java}
> class CSVParserSpecification extends Specification {
> def "TEst CSVParser"() {
> setup:
> URL url = new URL("https://....../csv_with_28_lines_header_plus_
> 27_records");
> BufferedReader reader = new BufferedReader(new
> InputStreamReader(url.openStream()));
> def CSVParser parser =
> CSVFormat.RFC4180.withFirstRecordAsHeader().withIgnoreEmptyLines().withTrim().parse(reader);
> when:
> def count = 0
> for (CSVRecord record: parser)
> { println("Processing " + parser.getCurrentLineNumber()) count++ }
> println(count);
> parser.close()
> then:
> count == 27
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)