Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.3, 1.4
Description
When setting QuoteMode.ALL is set we expect all values to be quoted, even those set as a default. This works in Commons 1.2 but doesn't in 1.4.
Consider the following program:
import org.apache.commons.csv.QuoteMode; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVPrinter; public class CommonsCsvIsSlightlyBroken { public static void main(String[] args) throws Exception { CSVFormat format = CSVFormat.EXCEL .withNullString("N/A") .withIgnoreSurroundingSpaces(true) .withQuoteMode(QuoteMode.ALL); CSVPrinter printer = new CSVPrinter(System.out, format); printer.printRecord(new Object[] { null, "Hello", null, "World" }); } }
For 1.2 we get quoted output:
richard@kichemaru:~/$ java -cp ~/.m2/repository/org/apache/commons/commons-csv/1.2/commons-csv-1.2.jar:. CommonsCsvIsSlightlyBroken "N/A","Hello","N/A","World"
When run with 1.4 we get unquoted output for default fields:
richard@kichemaru:~/$ java -cp ~/.m2/repository/org/apache/commons/commons-csv/1.4/commons-csv-1.4.jar:. CommonsCsvIsSlightlyBroken N/A,"Hello",N/A,"World"