commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukas Vasek (JIRA)" <>
Subject [jira] [Created] (CSV-213) CSVParser#terator()#hasNext() fails
Date Thu, 20 Jul 2017 09:25:00 GMT
Lukas Vasek created CSV-213:

             Summary: CSVParser#terator()#hasNext() fails
                 Key: CSV-213
             Project: Commons CSV
          Issue Type: Bug
          Components: Parser
    Affects Versions: 1.4
         Environment: linux/osx
            Reporter: Lukas Vasek
            Priority: Blocker

with class sample below and attached fail the program fails. Problem is that iterator wrongly
computes the records. If hasNext is true then next record should be fetched.
+ wouldn't it be better to provide currentRecord also?

public class Test {

    private static final CSVFormat csvFormat =

    private static Optional<String[]> createEndChannel(File csvFile) {
        try (Reader reader = new InputStreamReader(new FileInputStream(csvFile), StandardCharsets.UTF_8);
             CSVParser parser = new CSVParser(reader, csvFormat)) {
            if (parser.iterator().hasNext()) {
                // get only first record we don't need other's
                CSVRecord firstRecord = parser.iterator().next(); // this fails

                return Optional.of(null);
        } catch (IOException e) {
            throw new RuntimeException("Error while adding end channel to csv", e);

        return Optional.empty();

    public static void main(String[] args) {
        createEndChannel(new File("/tmp/999751170.patch.csv"));
        //createEndChannel(new File("/tmp/129441.csv"));

This message was sent by Atlassian JIRA

View raw message