[ 
https://issues.apache.org/jira/browse/CSV-213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Gregory updated CSV-213:
-----------------------------
    Summary: CSVParser#iterator()#hasNext() fails  (was: 
CSVParser#terator()#hasNext() fails)

> CSVParser#iterator()#hasNext() fails
> ------------------------------------
>
>                 Key: CSV-213
>                 URL: https://issues.apache.org/jira/browse/CSV-213
>             Project: Commons CSV
>          Issue Type: Bug
>          Components: Parser
>    Affects Versions: 1.4
>         Environment: linux/osx
>            Reporter: Lukas Vasek
>            Priority: Blocker
>         Attachments: 999751170.patch.csv
>
>
> 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?
> {code:java}
> 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"));
>     }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to