Uploaded image for project: 'Commons CSV'
  1. Commons CSV
  2. CSV-213

CSVParser#iterator()#hasNext() fails

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 1.4
    • None
    • Parser
    • None
    • linux/osx

    • Important

    Description

      Hello,
      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 =
                  CSVFormat.DEFAULT
                          .withDelimiter(';')
                          .withFirstRecordAsHeader()
                          .withRecordSeparator('\n')
                          .withQuoteMode(QuoteMode.ALL);
      
      
          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()) {
                      System.out.println(parser.getCurrentLineNumber());
                      System.out.println(parser.getRecordNumber());
                      // 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"));
          }
      }
      

      Attachments

        1. 999751170.patch.csv
          0.0 kB
          Lukas Vasek

        Activity

          People

            Unassigned Unassigned
            lukasvasek Lukas Vasek
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: