commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alpesh Kulkarni (JIRA)" <>
Subject [jira] [Created] (CSV-211) CSVFormat.format trims last delimiter if the delimiter is a white space
Date Thu, 15 Jun 2017 03:27:00 GMT
Alpesh Kulkarni created CSV-211:

             Summary: CSVFormat.format trims last delimiter if the delimiter is a white space
                 Key: CSV-211
             Project: Commons CSV
          Issue Type: Bug
    Affects Versions: 1.4
         Environment: Any.
            Reporter: Alpesh Kulkarni
            Priority: Minor

The function CSVFormat.format() trims off the last delimiter if the delimiter is a white space
character and the value in the last column is null.

    public String format(Object... values) {
        StringWriter out = new StringWriter();

        try {
            (new CSVPrinter(out, this)).printRecord(values);
            return out.toString().trim();
        } catch (IOException var4) {
            throw new IllegalStateException(var4);

For example, consider the following records (\t = tab)-

1{color:red}\t{color}John Doe{color:red}\t{color}USA{color:red}\t{color}20
2{color:red}\t{color}Jane Doe{color:red}\t{color}USA{color:red}\t{color}

The CSVFormat.format() on both the rows returns the following -

1{color:red}\t{color}John Doe{color:red}\t{color}USA{color:red}\t{color}20
2{color:red}\t{color}Jane Doe{color:red}\t{color}USA

Note that there is a missing delimiter for the last column in the second record.

This usually causes schema mismatch when we try and read back the CSV file as there is one
less column in all the rows which have a null at the end.

I feel the trim() is unnecessary while returning *out.toString()*

This message was sent by Atlassian JIRA

View raw message