Apache Commons logo Commons CSV™ logo

Release Notes

Release History

Version Date Description
1.1 2014-11-16 Feature and bug fix release
1.0 2014-08-14 First release

Release 1.1 – 2014-11-16

Type Changes By
Fix QuoteMode.NON_NUMERIC doesn't work with CSVPrinter.printRecords(ResultSet) Fixes CSV-140. Thanks to Damjan Jovanovic. ggregory
Fix CSVFormat#withHeader doesn't work well with #printComment, add withHeaderComments(String...) Fixes CSV-130. Thanks to Sergei Lebedev. ggregory
Fix CSVFormat.EXCEL should ignore empty header names Fixes CSV-128. ggregory
Fix Incorrect Javadoc referencing org.apache.commons.csv.CSVFormat withQuote() Fixes CSV-132. Thanks to Sascha Szott. ggregory
Update Improve toString() implementation of CSVRecord Fixes CSV-124. Thanks to Kalyan. brentworden
Update Unified parameter validation Fixes CSV-134. Thanks to wu wen. ggregory
Add Add CSVFormat#with 0-arg methods matching boolean arg methods Fixes CSV-129. ggregory
Add Save positions of records to enable random access Fixes CSV-131. Thanks to Holger Stratmann. ggregory
Add CSVPrinter.printRecord(ResultSet) with metadata Fixes CSV-139. ggregory

Release 1.0 – 2014-08-14

Type Changes By
Fix No longer works with Java 6 Fixes CSV-125. britter
Fix NullPointerException when empty header string and and null string of "" Fixes CSV-122. Thanks to Mike Lewis. britter
Update Validate format parameters in constructor Fixes CSV-117. sebb
Add IllegalArgumentException thrown when the header contains duplicate names when the column names are empty. Fixes CSV-121. Thanks to Sebastian Hardt. ggregory
Add CSVFormat#withHeader doesn't work with CSVPrinter Fixes CSV-120. Thanks to Sergei Lebedev. ggregory
Add CSVFormat is missing a print(...) method Fixes CSV-119. Thanks to Sergei Lebedev. ggregory
Fix CSVRecord.toMap() throws NPE on formats with no headers. Fixes CSV-118. Thanks to Enrique Lara. ggregory
Fix Check whether ISE/IAE are being used appropriately Fixes CSV-113. sebb
Fix CSVFormat constructor should reject a header array with duplicate entries Fixes CSV-114. sebb
Fix HeaderMap is inconsistent when it is parsed from an input with duplicate columns names Fixes CSV-112. britter
Fix CSVRecord.toMap() fails if row length shorter than header length Fixes CSV-111. ggregory
Fix CSVFormat.format allways append null Fixes CSV-106. ggregory
Add Add Map conversion API to CSVRecord Fixes CSV-105. ggregory
Fix CSVParser: getHeaderMap throws NPE Fixes CSV-100. ggregory
Update Lots of possible changes Fixes CSV-42. Thanks to Bob Smith. ebourg
Update Use Character instead of char for char fields except delimiter Fixes CSV-78. sebb
Update Revert Builder implementation in CSVFormat Fixes CSV-99. britter
Fix CSVRecord does not verify that the length of the header mapping matches the number of values Fixes CSV-53. britter
Update Allow the handling of NULL values Fixes CSV-93. ggregory
Update Use the Builder pattern for CSVFormat Fixes CSV-68. ggregory
Update Clarify comment handling Fixes CSV-84. sebb
Update CSVParser.nextValue() seems pointless Fixes CSV-25. ebourg
Update Allow the String value for null to be customized for the CSV printer Fixes CSV-97. ggregory
Update Not possible to create a CSVFormat from scratch Fixes CSV-88. ggregory
Add Keep track of record number Fixes CSV-52. ggregory
Update Lexer should only use char fields Fixes CSV-94. sebb
Add Need a way to extract parsed headers, e.g. for use in formatting output Fixes CSV-92. ggregory
Add Header support Fixes CSV-65. ebourg
Fix Confusing semantic of the ignore leading/trailing spaces parameters Fixes CSV-54. sebb
Update Add convenience methods to CSVLexer Fixes CSV-71. sebb
Update Is CharBuffer really needed, now that StringBuilder is available? Fixes CSV-59. ebourg
Update Replace while(true)-loop in CSVParser.getRecord with do-while-loop Fixes CSV-55. britter
Fix CSVFormat describes itself as immutable, but it is not - in particular it is not thread-safe Fixes CSV-34. sebb
Fix Endless loops in CSV parser Fixes CSV-36. yonik
Fix NullPointerException in CSVPrinter.print()/println() Fixes CSV-13. ebourg
Update CSVPrinter overhaul Fixes CSV-45. yonik
Fix Excel strategy uses wrong separator Fixes CSV-23. ebourg
Update CSVStrategy has modifiable public static variables Fixes CSV-49. Thanks to Bob Smith. ebourg
Add Predefined format for MYSQL Fixes CSV-48. ebourg
Update Reduce visibility of methods in internal classes Fixes CSV-46. ebourg
Update ExtendedBufferedReader does too much Fixes CSV-26. jacopoc
Update Decide whether to keep the csv.writer subpackage Fixes CSV-27. ebourg