Apache Commons CSV Release Notes
Release History
Version |
Date |
Description |
1.12.0 |
2024-09-21 |
Feature and bug fix release (Java 8 or above) |
1.11.0 |
2024-04-28 |
Feature and bug fix release (Java 8 or above) |
1.10.0 |
2023-01-28 |
Feature and bug fix release (Java 8 or above) |
1.9.0 |
2021-07-24 |
Feature and bug fix release (Java 8 or above) |
1.8 |
2020-02-01 |
Feature and bug fix release (Java 8 or above). This release fixes serialization compatibility of CSVRecord with versions 1.0 to 1.6. New fields added since 1.7 are not serialized. Support for Serializable is scheduled to be removed in version 2.0. |
1.7 |
2019-06-01 |
Feature and bug fix release (Java 8 or above) |
1.6 |
2018-09-22 |
Feature and bug fix release (Java 7 or above) |
1.5 |
2017-09-03 |
Feature and bug fix release (Java 7 or above) |
1.4 |
2016-05-28 |
Feature and bug fix release (Java 6 or above) |
1.3 |
2016-05-09 |
Feature and bug fix release (Java 6 or above) |
1.2 |
2015-08-24 |
Feature and bug fix release (Java 6 or above) |
1.1 |
2014-11-16 |
Feature and bug fix release (Java 6 or above) |
1.0 |
2014-08-14 |
First release (Java 6 or above) |
Release 1.12.0 – 2024-09-21
Type |
Changes |
By |
|
Add CSVException that extends IOException thrown on invalid input instead of IOException. Fixes CSV-270. Thanks to Thomas Kamps, Gary Gregory. |
ggregory |
|
Fix PMD issues for port to PMD 7.1.0. Thanks to Gary Gregory. |
ggregory |
|
Fix some Javadoc links #442. Thanks to Dávid Szigecsán, Gary Gregory. |
ggregory |
|
Extract duplicated code into a method #444. Thanks to Dávid Szigecsán. |
ggregory |
|
Migrate CSVFormat#print(File, Charset) to NIO #445. Thanks to Dávid Szigecsán. |
ggregory |
|
Fix documentation for CSVFormat private constructor #466. Thanks to Dávid Szigecsán. |
ggregory |
|
CSVFormat does not support explicit " as escape char. Fixes CSV-294. Thanks to Joern Huxhorn, Gary Gregory. |
ggregory |
|
Escaping is not disableable. Fixes CSV-150. Thanks to dota17, Gary Gregory, Jörn Huxhorn. |
ggregory |
|
Fix Javadoc warnings on Java 23. Thanks to Gary Gregory. |
ggregory |
|
Improve parser performance by up to 20%, YMMV. Thanks to Gary Gregory. |
ggregory |
|
Bump commons-codec:commons-codec from 1.16.1 to 1.17.1 #422, #449. Thanks to Dependabot. |
ggregory |
|
Bump org.apache.commons:commons-parent from 69 to 75 #435, #452, #465, #468, #475. Thanks to Gary Gregory. |
ggregory |
|
Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0 #441. Thanks to Gary Gregory. |
ggregory |
|
Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #450, #459, #470. Thanks to Gary Gregory. |
ggregory |
|
Bump org.hamcrest:hamcrest from 2.2 to 3.0 #455. Thanks to Gary Gregory. |
ggregory |
|
Bump commons-io:commons-io from 2.16.1 to 2.17.0 #476. Thanks to Gary Gregory, Dependabot. |
ggregory |
Release 1.11.0 – 2024-04-28
Type |
Changes |
By |
|
[Javadoc] Add example to CSVFormat#setHeaderComments() #344. Fixes CSV-308. Thanks to Buddhi De Silva, Gary Gregory. |
ggregory |
|
Add and use CSVFormat#setTrailingData(boolean) in CSVFormat.EXCEL for Excel compatibility #303. Thanks to DamjanJovanovic, Gary Gregory. |
ggregory |
|
Add and use CSVFormat#setLenientEof(boolean) in CSVFormat.EXCEL for Excel compatibility #303. Thanks to DamjanJovanovic, Gary Gregory. |
ggregory |
|
Replace deprecated method in user guide, update external link #324, #325. Fixes CSV-306. Thanks to Sam Ng, Bruno P. Kinoshita. |
ggregory |
|
Document duplicate header behavior #309. Thanks to Seth Falco, Bruno P. Kinoshita. |
ggregory |
|
Add missing docs #328. Thanks to jkbkupczyk. |
ggregory |
|
[StepSecurity] CI: Harden GitHub Actions #329, #330. Thanks to step-security-bot. |
ggregory |
|
Better error message during faulty CSV record read #347. Fixes CSV-147. Thanks to Steven Peterson, Benedikt Ritter, Gary Gregory, Joerg Schaible, Buddhi De Silva, Elliotte Rusty Harold. |
ggregory |
|
Misleading error message when QuoteMode set to None #352. Fixes CSV-310. Thanks to Buddhi De Silva. |
ggregory |
|
OutOfMemory for very long rows despite using column value of type Reader. Fixes CSV-311. Thanks to Christian Feuersaenger, Gary Gregory. |
ggregory |
|
Use try-with-resources to manage JDBC CLOB in CSVPrinter.printRecords(ResultSet). Thanks to Gary Gregory. |
ggregory |
|
JDBC Blob columns are now output as Base64 instead of Object#toString(), which usually is InputStream#toString(). Thanks to Gary Gregory. |
ggregory |
|
Support unusual Excel use cases: Add support for trailing data after the closing quote, and EOF without a final closing quote #303. Thanks to DamjanJovanovic, Gary Gregory. |
ggregory |
|
MongoDB CSV empty first column parsing fix #412. Thanks to Igor Kamyshnikov, Gary Gregory. |
ggregory |
|
Bump commons-io:commons-io: from 2.11.0 to 2.16.1 #408, #413. Thanks to Gary Gregory. |
ggregory |
|
Bump commons-parent from 57 to 69 #410. Thanks to Gary Gregory, Dependabot. |
ggregory |
|
Bump h2 from 2.1.214 to 2.2.224 #333, #349, #359. Thanks to Dependabot. |
ggregory |
|
Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory. |
ggregory |
|
Update exception message in CSVRecord#getNextRecord() #348. Thanks to Buddhi De Silva, Michael Osipov, Gary Gregory. |
ggregory |
|
Bump tests using com.opencsv:opencsv from 5.8 to 5.9 #373. Thanks to Dependabot. |
ggregory |
Release 1.10.0 – 2023-01-28
Type |
Changes |
By |
|
Minor changes #172. Thanks to Arturo Bernal. |
ggregory |
|
No Automatic-Module-Name prevents usage in JPMS projects without repacking the JAR. Fixes CSV-292. Thanks to Rob Vesse. |
kinow |
|
Fix for multi-char delimiter not working as expected #218. Fixes CSV-288. Thanks to Santhsoh, Angus. |
ggregory |
|
CSVRecord.get(Enum) should use Enum.name() instead of Enum.toString(). Fixes CSV-269. Thanks to Auke te Winkel, Gary Gregory. |
ggregory |
|
Allow org.apache.commons.csv.IOUtils.copy(Reader, Appendable, CharBuffer) to compile on Java 11 and run on Java 8. Thanks to Gary Gregory. |
ggregory |
|
CSVRecord.toList() does not give write access to the new List. Fixes CSV-300. Thanks to Markus Spann, Gary Gregory. |
ggregory |
|
CSVParser.getRecords() now throws UncheckedIOException instead of IOException. Thanks to Gary Gregory. |
ggregory |
|
Add comments to iterator() and stream() #270. Fixes CSV-274. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory. |
ggregory |
|
Fix wrong assumptions in PostgreSQL formats #265. Fixes CSV-290. Thanks to angusdev, Gary Gregory. |
ggregory |
|
Validate input to setDelimiter(String) for empty string #266. Thanks to Mykola Faryma. |
ggregory |
|
Bump CSVFormat#serialVersionUID from 1 to 2. Thanks to Dependabot. |
ggregory |
|
CSVParser: Identify duplicates in null, empty and blank header names #279. Thanks to Alex Herbert. |
ggregory |
|
Serialization in CSVFormat is not supported from one version to the next. |
ggregory |
|
Make CSVRecord#values() public. Fixes CSV-291. Thanks to Gary Gregory. |
ggregory |
|
Add DuplicateHeaderMode for flexibility with header strictness. #114. Fixes CSV-264. Thanks to Sagar Tiwari, Seth Falco, Alex Herbert, Gary Gregory. |
ggregory |
|
Support for parallelism in CSVPrinter. Fixes CSV-295. Thanks to Gary Gregory. |
ggregory |
|
Add CSVPrinter.printRecord[s](Stream). Fixes CSV-295. Thanks to Gary Gregory. |
ggregory |
|
Add accessors for header/trailer comments #257. Fixes CSV-304. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory. |
ggregory |
|
Add github/codeql-action. |
ggregory |
|
Bump actions/cache from 2.1.6 to 3.0.10 #196, #233, #243, #267, #271. Thanks to Dependabot, Gary Gregory. |
kinow |
|
Bump actions/checkout from 2.3.4 to 3.1.0 #188, #195, #220, #272. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump actions/setup-java from 2 to 3.5.1. Thanks to Gary Gregory. |
ggregory |
|
Bump actions/upload-artifact from 3.1.0 to 3.1.1 #280. Thanks to Dependabot. |
ggregory |
|
Bump commons-parent from 52 to 57 #264, #288, #298, #323. Thanks to Gary Gregory. |
ggregory |
|
Bump checkstyle from 8.44 to 9.2.1 #180, #190, #194, #202, #207. Thanks to Dependabot. |
ggregory |
|
Bump junit-jupiter from 5.8.0-M1 to 5.9.1 #179, #186, #201, #244, #263. Thanks to Dependabot. |
ggregory |
|
Bump jmh-core from 1.32 to 1.36 #176, #208, #229, #285. Thanks to Dependabot. |
ggregory |
|
Bump jmh-generator-annprocess from 1.32 to 1.36 #175, #206, #226, #283. Thanks to Dependabot. |
ggregory |
|
Bump mockito-core from 3.11.2 to 4.11.0 #187, #197, #204, #212, #230, #237, #251, #259, #284, #292, #297. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #184, #219, #238, #254, #258. Thanks to Dependabot. |
ggregory |
|
Bump pmd from 6.36.0 to 6.52.0 #173, #189, #193, #199, #227, #233, #214, #236, #240, #247, #255, #273. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump opencsv from 5.5.1 to 5.7.1 #182, #221, #260, #281. Thanks to Gary Gregory. |
ggregory |
|
Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #192, #198, #203, #211, #225, #234, #242, #245, #261, #275, #282. Thanks to Dependabot. |
ggregory |
|
Bump com.github.spotbugs:spotbugs from 4.5.3 to 4.7.2. Thanks to Gary Gregory. |
ggregory |
|
Bump h2 from 1.4.200 to 2.1.214 #200, #205, #213, #239. Thanks to Dependabot. |
kinow |
|
Bump maven-javadoc-plugin from 3.3.0 to 3.4.1. Thanks to Gary Gregory. |
ggregory |
|
Bump biz.aQute.bnd:biz.aQute.bndlib from 5.3.0 to 6.3.1. Thanks to Gary Gregory. |
ggregory |
|
Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. |
ggregory |
|
Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory. |
ggregory |
|
Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #253. Thanks to Dependabot. |
kinow |
Release 1.9.0 – 2021-07-24
Type |
Changes |
By |
|
Replace FindBugs with SpotBugs #56. Thanks to Amey Jadiye. |
ggregory |
|
Javadoc typo in CSVFormat let's -> lets #57. Thanks to Chen. |
ggregory |
|
CSVFormat.printWithEscapes throws StringIndexOutOfBoundsException when value is Reader #61. Fixes CSV-259. Thanks to Chen. |
ggregory |
|
Improve CSVFormat test coverage #63. Thanks to Chen. |
ggregory |
|
Fix CSVFileParserTest.java to allow for a null return value from record.getComment() #62. Thanks to Chen. |
ggregory |
|
Improve test coverage in CSVFormatTest #65. Thanks to Chen. |
ggregory |
|
Removed invalid Javadoc markup for CSVFormat EXCEL #64. Thanks to Chen. |
ggregory |
|
Improve CSVRecord and CSVPrinter code coverage #66. Thanks to Chen. |
ggregory |
|
Improve lexer and token coverage #67. Thanks to Chen. |
ggregory |
|
CSVFormat.format trims last delimiter if the delimiter is a white space #71. Fixes CSV-211. Thanks to Alpesh Kulkarni, Chen. |
ggregory |
|
Replace org.apache.commons.csv.Assertions.notNull() with Objects.requireNonNull(). Thanks to Gary Gregory. |
ggregory |
|
Line number is not proper at EOF. Fixes CSV-149. Thanks to Kranthi, Gary Gregory, Brent Worden, dota17. |
ggregory |
|
Parser iterates over the last CSV Record twice. Fixes CSV-195. Thanks to Rodolfo Duldulao, Rodolfo Duldulao, Michael Vitz, dota17. |
ggregory |
|
Minor improvements #126, #127, #130. Fixes CSV-267. Thanks to Arturo Bernal. |
ggregory |
|
Add possibility to use ResultSet header meta data as CSV header #11. Fixes CSV-123. Thanks to Emmanuel Bourg, Benedikt Ritter, shivakrishnaah, Gary Gregory. |
ggregory |
|
Add test cases for withIgnoreSurroundingSpaces() and withTrim() #70. Fixes CSV-148. Thanks to dota17. |
ggregory |
|
Update CSVParser.parse(File, Charset, CSVFormat) from IO to NIO. Thanks to Gary Gregory. |
ggregory |
|
Missing separator with print(object) followed by printRecord(Object[]) #157. Fixes CSV-271. Thanks to Amar Prakash Pandey. |
ggregory |
|
Fix EOL checking for read array in ExtendedBufferedReader #5. Fixes CSV-158. Thanks to Alexander Bondarev, Benedikt Ritter, Gary Gregory, Chen. |
ggregory |
|
Print from Reader with embedded quotes generates incorrect output #78. Fixes CSV-263. Thanks to Jason A. Guild, Gary Gregory. |
ggregory |
|
Replace JUnit assert by simpler but equivalent calls. #159. Thanks to Arturo Bernal. |
ggregory |
|
Update gitignore to ignore idea and vscode #160. Thanks to Seth Falco. |
ggregory |
|
Update CSVBenchmark #165. Fixes CSV-281. Thanks to belugabehr. |
ggregory |
|
Remove Whitespace Check Determines Delimiter Twice #167. Fixes CSV-283. Thanks to belugabehr. |
ggregory |
|
Document and Automate CSV Benchmark Harness #166. Fixes CSV-283. Thanks to belugabehr. |
ggregory |
|
Optimize Lexer Delimiter Check for One Character Delimiter #163. Fixes CSV-279. Thanks to belugabehr. |
ggregory |
|
SpotBugs Error: Medium: org.apache.commons.csv.CSVParser.getHeaderNames() may expose internal representation by returning CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 599] EI_EXPOSE_REP. Thanks to Gary Gregory. |
ggregory |
|
SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.format [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 433] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
|
SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerMap [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 437] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
|
SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 438] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
|
SpotBugs Error: Medium: new org.apache.commons.csv.CSVPrinter(Appendable, CSVFormat) may expose internal representation by storing an externally mutable object into CSVPrinter.format [org.apache.commons.csv.CSVPrinter] At CSVPrinter.java:[line 100] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
|
Formalize PerformanceTest #168. Fixes CSV-284. Thanks to belugabehr. |
ggregory |
|
Reuse Buffers in Lexer for Delimiter Detection #162. Fixes CSV-278. Thanks to belugabehr. |
ggregory |
|
Cleanup and Document Performance Test Harness #170. Fixes CSV-286. Thanks to belugabehr. |
ggregory |
|
Update buffer position when reading line comment #120. Fixes CSV-265. Thanks to belugabehr. |
ggregory |
|
Make CSVRecord#toList() public. Fixes CSV-275. Thanks to Michael Wyraz, Gary Gregory. |
ggregory |
|
Add CSVRecord#stream(). Thanks to Gary Gregory. |
ggregory |
|
Add CSVParser#stream(). Thanks to Gary Gregory. |
ggregory |
|
Make the method CSVRecord.putIn(Map) public. Fixes CSV-184. Thanks to Gaurav Agarwal, M. Steiger, Gary Gregory. |
ggregory |
|
Add test cases for CSVRecord with get(Enum) and toString. #54. Thanks to dota17. |
ggregory |
|
Add and use CSVFormat.Builder, deprecated CSVFormat#with methods, based on #73. Thanks to Gary Gregory, dota17. |
ggregory |
|
Add support for String delimiters #76. Fixes CSV-206. Thanks to Gary Gregory, dota17. |
ggregory |
|
Update org.junit.jupiter:junit-jupiter from 5.6.0 to 5.7.0, #84 #109 Thanks to Gary Gregory. |
ggregory |
|
Update tests from Apache Commons Lang 3.9 to 3.12.0. Thanks to Gary Gregory. |
ggregory |
|
Update tests from commons-io:commons-io 2.6 to 2.11.0, #108. Thanks to Gary Gregory. |
ggregory |
|
Bump actions/checkout from v1 to v2.3.4, #79, #92, #121. Thanks to Dependabot. |
ggregory |
|
Bump commons-parent from 50 to 51 #80. Thanks to Dependabot. |
ggregory |
|
Bump tests from opencsv from 3.1 to 5.5.1 #81, #137, #158. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Update tests from super-csv from 2.2.1 to 2.4.0 #86. Thanks to Gary Gregory. |
ggregory |
|
Bump build actions/setup-java from v1.4.0 to v2, #101, #113. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #122. Thanks to Dependabot. |
ggregory |
|
Bump tests from org.mockito:mockito-core 3.2.4 -> 3.11.2; #88, #107, #110, #123, #128, #129, #156. Thanks to Gary Gregory, Dependabot. |
ggregory |
|
Bump actions/cache from v2 to v2.1.6 #132, #153. Thanks to Dependabot. |
ggregory |
|
Bump maven-checkstyle-plugin from 3.0.0 to 3.1.2 #131. Thanks to Gary Gregory, Dependabot. |
ggregory |
|
Bump checkstyle from 8.29 to 8.44. Thanks to Gary Gregory. |
ggregory |
|
Bump junit-jupiter from 5.7.0 to 5.8.0-M1 #133, #149. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16). Thanks to Dependabot. |
ggregory |
|
Bump commons.spotbugs.version from 4.0.4 to 4.3.0 (Java 16). Thanks to Dependabot. |
ggregory |
|
Bump maven-javadoc-plugin from 3.2.0 to 3.3.0. Thanks to Gary Gregory. |
ggregory |
|
Bump jmh-generator-annprocess from 1.5.2 to 1.32 #151. Thanks to Dependabot. |
ggregory |
|
Bump PMD core from 6.29.0 to 6.36.0. Thanks to Dependabot. |
ggregory |
|
Bump biz.aQute.bnd:biz.aQute.bndlib from 5.1.2 to 5.3.0. Thanks to Dependabot. |
ggregory |
Release 1.8 – 2020-02-01
Type |
Changes |
By |
|
Add CSVRecord.isSet(int) method #52. Fixes CSV-255. Thanks to 0x100. |
ggregory |
|
Char escape doesn't work properly with quoting. Fixes CSV-135. Thanks to Mateusz Zakarczemny. |
sebb |
|
Test case failures following CSVFormat#equals() update. Fixes CSV-244. |
sebb |
|
CSVFormat withTrim() and withIgnoreSurroundingSpaces() need better docs. Fixes CSV-243. |
sebb |
|
CSVFormat equals() and hashCode() don't use all fields. Fixes CSV-242. |
sebb |
|
CSVFormat#validate() does not account for allowDuplicateHeaderNames #43. Fixes CSV-241. Thanks to LuckyIlam, Gary Gregory. |
ggregory |
|
Post 1.7 release fixes. Fixes CSV-245. Thanks to Alex Herbert. |
ggregory |
|
Upgrade test framework to JUnit 5 Jupiter #49, #50. Fixes CSV-252. Thanks to Alex Herbert. |
ggregory |
|
A single empty header is allowed when not allowing empty column headers. #47. Fixes CSV-247. Thanks to Alex Herbert, Gary Gregory. |
ggregory |
|
CSVRecord is not Serializable. Fixes CSV-248. Thanks to Alex Herbert. |
ggregory |
|
Use test scope for supercsv #48. Thanks to Alex Herbert. |
ggregory |
|
Update tests from H2 1.4.199 to 1.4.200. Thanks to Gary Gregory. |
ggregory |
|
Update tests from Hamcrest 2.1 to 2.2. Thanks to Gary Gregory. |
ggregory |
|
Update tests from Mockito 3.1.0 to 3.2.4. Thanks to Gary Gregory. |
ggregory |
|
Fix typos in site and test #53. Thanks to Chen. |
ggregory |
|
Fix typo performance test #55. Thanks to Chen. |
ggregory |
Release 1.7 – 2019-06-01
Type |
Changes |
By |
|
Add predefined CSVFormats for printing MongoDB CSV and TSV. Fixes CSV-233. Thanks to Gary Gregory. |
ggregory |
|
Fix escape character for POSTGRESQL_TEXT and POSTGRESQL_CSV formats. Fixes CSV-208. Thanks to Jurrie Overgoor. |
ggregory |
|
Site link "Source Repository" does not work. Fixes CSV-232. Thanks to Jurrie Overgoor, Gary Gregory. |
ggregory |
|
Add support for java.sql.Clob. Fixes CSV-234. Thanks to Roberto Benedetti, Gary Gregory. |
ggregory |
|
Update to Java 8. Fixes CSV-237. Thanks to Gary Gregory. |
ggregory |
|
Escape quotes in CLOBs #39. Fixes CSV-238. Thanks to Stephen Olander-Waters. |
ggregory |
|
Cannot get headers in column order from CSVRecord. Fixes CSV-239. Thanks to Gary Gregory, Dave Moten. |
ggregory |
|
Update tests from H2 1.4.198 to 1.4.199. Thanks to Gary Gregory. |
ggregory |
Release 1.6 – 2018-09-22
Type |
Changes |
By |
|
Add more documentation to CSVPrinter. Fixes CSV-231. |
britter |
|
Add autoFlush option for CsvPrinter. PR #24. Fixes CSV-217. Thanks to Korolyov Alexei. |
ggregory |
|
The behavior of quote char using is not similar as Excel does when the first string contains CJK char(s). Fixes CSV-219. Thanks to Zhang Hongda. |
ggregory |
|
Don't quote cells just because they have UTF-8 encoded characters. Fixes CSV-172. Thanks to Andrew Pennebaker. |
ggregory |
|
Add API org.apache.commons.csv.CSVFormat.withSystemRecordSeparator(). Fixes CSV-220. Thanks to Gary Gregory. |
ggregory |
|
Inconsistency between Javadoc of CSVFormat DEFAULT EXCEL. Fixes CSV-223. Thanks to Samuel Martin. |
ggregory |
|
Create CSVFormat.ORACLE preset. Fixes CSV-209. Thanks to Gary Gregory. |
ggregory |
|
Some multi-iterator parsing peek sequences incorrectly consume elements. Fixes CSV-224. Thanks to David Warshaw. |
ggregory |
|
Parse method should avoid creating a redundant BufferedReader. Fixes CSV-225. Thanks to Anson Schwabecher. |
ggregory |
|
Add predefined CSVFormats for printing MongoDB CSV and TSV. Fixes CSV-233. Thanks to Gary Gregory. |
ggregory |
Release 1.5 – 2017-09-03
Type |
Changes |
By |
|
withNullString value is printed without quotes when QuoteMode.ALL is specified; add QuoteMode.ALL_NON_NULL. PR #17. Fixes CSV-203. Thanks to Richard Wheeldon, Kai Paroth. |
ggregory |
|
Fix outdated comments about FileReader in CSVParser #13. Fixes CSV-194. Thanks to Marc Prud'hommeaux. |
ggregory |
|
Fix incorrect method name 'withFirstRowAsHeader' in user guide. Fixes CSV-193. Thanks to Matthias Wiehl. |
ggregory |
|
Negative numeric values in the first column are always quoted in minimal mode. Fixes CSV-171. Thanks to Gary Gregory, Michael Graessle, Adrian Bridgett. |
ggregory |
|
Update platform requirement from Java 6 to 7. Fixes CSV-187. Thanks to Gary Gregory. |
ggregory |
|
Do not use RuntimeException in CSVParser.iterator().new Iterator() {...}.getNextRecord(). Fixes CSV-201. Thanks to Benedikt Ritter, Gary Gregory. |
ggregory |
|
CSVParser: Add factory method accepting InputStream. Fixes CSV-189. Thanks to Peter Holzwarth, Gary Gregory. |
ggregory |
|
Add convenience API CSVFormat.print(File, Charset). Fixes CSV-190. Thanks to Gary Gregory. |
ggregory |
|
Add convenience API CSVFormat.print(Path, Charset). Fixes CSV-191. Thanks to Gary Gregory. |
ggregory |
|
Add convenience API CSVParser.parse(Path, Charset, CSVFormat). Fixes CSV-192. Thanks to Gary Gregory. |
ggregory |
|
Add convenience API CSVFormat#printer() to print to System.out. Fixes CSV-205. Thanks to Gary Gregory. |
ggregory |
|
Provide a CSV Format for printing PostgreSQL CSV and Text formats. Fixes CSV-207. Thanks to Gary Gregory. |
ggregory |
|
Adding a placeholder in the Lexer and CSV parser to store the end-of-line string. Fixes CSV-214. Thanks to Nitin Mahendru, Gary Gregory. |
ggregory |
Release 1.4 – 2016-05-28
Type |
Changes |
By |
|
Make CSVPrinter.print(Object) GC-free. Fixes CSV-181. Thanks to Gary Gregory. |
ggregory |
|
Allow some printing operations directly from CSVFormat. Fixes CSV-182. Thanks to Gary Gregory. |
ggregory |
|
Drop ferc.gov tests. Fixes CSV-183. |
ggregory |
Release 1.3 – 2016-05-09
Type |
Changes |
By |
|
Add shortcut method for using first record as header to CSVFormat. Fixes CSV-179. |
britter |
|
Add withHeader(Class<? extends Enum>) to CSVFormat. Fixes CSV-180. |
britter |
|
Comment line hides next record; update Javadoc to make behavior clear. Fixes CSV-167. Thanks to Rene. |
sebb |
|
CSVPrinter doesn't skip creation of header record if skipHeaderRecord is set to true. Fixes CSV-153. Thanks to Wren. |
britter |
|
Add IgnoreCase option for accessing header names. Fixes CSV-159. Thanks to Yamil Medina. |
ggregory |
|
The null string should be case-sensitive when reading records. Fixes CSV-169. Thanks to Gary Gregory. |
ggregory |
|
CSVFormat.nullString should not be escaped. Fixes CSV-168. Thanks to Gary Gregory, cornel creanga. |
ggregory |
|
CSVFormat.MYSQL nullString should be "\N". Fixes CSV-170. Thanks to Gary Gregory, cornel creanga. |
ggregory |
|
Fix Javadoc to say CSVFormat with() methods return a new CSVFormat. Fixes CSV-161. Thanks to Gary Gregory, Kristof Meixner, Emmanuel Bourg. |
ggregory |
|
Support for ignoring trailing delimiter. Fixes CSV-175. Thanks to Gary Gregory, Chris Jones. |
ggregory |
|
Support trimming leading and trailing blanks. Fixes CSV-177. Thanks to Gary Gregory. |
ggregory |
|
Create default formats for Informix UNLOAD and UNLOAD CSV. Fixes CSV-178. Thanks to Gary Gregory. |
ggregory |
Release 1.2 – 2015-08-24
Type |
Changes |
By |
|
CSVFormat.with* methods clear the header comments. Fixes CSV-145. Thanks to Frank Ulbricht. |
ggregory |
|
Incorrect Javadoc on QuoteMode.NONE. Fixes CSV-156. Thanks to Jason Steenstra-Pickens. |
ggregory |
|
Add enum CSVFormat.Predefined that contains the default CSVFormat values. Fixes CSV-157. |
ggregory |
Release 1.1 – 2014-11-16
Type |
Changes |
By |
|
QuoteMode.NON_NUMERIC doesn't work with CSVPrinter.printRecords(ResultSet). Fixes CSV-140. Thanks to Damjan Jovanovic. |
ggregory |
|
CSVFormat#withHeader doesn't work well with #printComment, add withHeaderComments(String...). Fixes CSV-130. Thanks to Sergei Lebedev. |
ggregory |
|
CSVFormat.EXCEL should ignore empty header names. Fixes CSV-128. |
ggregory |
|
Incorrect Javadoc referencing org.apache.commons.csv.CSVFormat withQuote(). Fixes CSV-132. Thanks to Sascha Szott. |
ggregory |
|
Improve toString() implementation of CSVRecord. Fixes CSV-124. Thanks to Kalyan. |
brentworden |
|
Unified parameter validation. Fixes CSV-134. Thanks to wu wen. |
ggregory |
|
Add CSVFormat#with 0-arg methods matching boolean arg methods. Fixes CSV-129. |
ggregory |
|
Save positions of records to enable random access. Fixes CSV-131. Thanks to Holger Stratmann. |
ggregory |
|
CSVPrinter.printRecord(ResultSet) with metadata. Fixes CSV-139. |
ggregory |
Release 1.0 – 2014-08-14
Type |
Changes |
By |
|
No longer works with Java 6. Fixes CSV-125. |
britter |
|
NullPointerException when empty header string and null string of "". Fixes CSV-122. Thanks to Mike Lewis. |
britter |
|
Validate format parameters in constructor. Fixes CSV-117. |
sebb |
|
IllegalArgumentException thrown when the header contains duplicate names when the column names are empty. Fixes CSV-121. Thanks to Sebastian Hardt. |
ggregory |
|
CSVFormat#withHeader doesn't work with CSVPrinter. Fixes CSV-120. Thanks to Sergei Lebedev. |
ggregory |
|
CSVFormat is missing a print(...) method. Fixes CSV-119. Thanks to Sergei Lebedev. |
ggregory |
|
CSVRecord.toMap() throws NPE on formats with no
headers. Fixes CSV-118. Thanks to Enrique Lara. |
ggregory |
|
Check whether ISE/IAE are being used appropriately. Fixes CSV-113. |
sebb |
|
CSVFormat constructor should reject a header array with duplicate
entries. Fixes CSV-114. |
sebb |
|
HeaderMap is inconsistent when it is parsed from an input with
duplicate columns names. Fixes CSV-112. |
britter |
|
CSVRecord.toMap() fails if row length shorter than header length. Fixes CSV-111. |
ggregory |
|
CSVFormat.format allways append null. Fixes CSV-106. |
ggregory |
|
Add Map conversion API to CSVRecord. Fixes CSV-105. |
ggregory |
|
CSVParser: getHeaderMap throws NPE. Fixes CSV-100. |
ggregory |
|
Lots of possible changes. Fixes CSV-42. Thanks to Bob Smith. |
ebourg |
|
Use Character instead of char for char fields except delimiter. Fixes CSV-78. |
sebb |
|
Revert Builder implementation in CSVFormat. Fixes CSV-99. |
britter |
|
CSVRecord does not verify that the length of the header mapping
matches the number of values. Fixes CSV-53. |
britter |
|
Allow the handling of NULL values. Fixes CSV-93. |
ggregory |
|
Use the Builder pattern for CSVFormat. Fixes CSV-68. |
ggregory |
|
Clarify comment handling. Fixes CSV-84. |
sebb |
|
CSVParser.nextValue() seems pointless. Fixes CSV-25. |
ebourg |
|
Allow the String value for null to be customized for the CSV
printer. Fixes CSV-97. |
ggregory |
|
Not possible to create a CSVFormat from scratch. Fixes CSV-88. |
ggregory |
|
Keep track of record number. Fixes CSV-52. |
ggregory |
|
Lexer should only use char fields. Fixes CSV-94. |
sebb |
|
Need a way to extract parsed headers, e.g. for use in formatting
output. Fixes CSV-92. |
ggregory |
|
Header support. Fixes CSV-65. |
ebourg |
|
Confusing semantic of the ignore leading/trailing spaces parameters. Fixes CSV-54. |
sebb |
|
Add convenience methods to CSVLexer. Fixes CSV-71. |
sebb |
|
Is CharBuffer really needed, now that StringBuilder is available?. Fixes CSV-59. |
ebourg |
|
Replace while(true)-loop in CSVParser.getRecord with do-while-loop. Fixes CSV-55. |
britter |
|
CSVFormat describes itself as immutable, but it is not - in
particular it is not thread-safe. Fixes CSV-34. |
sebb |
|
Endless loops in CSV parser. Fixes CSV-36. |
yonik |
|
NullPointerException in CSVPrinter.print()/println(). Fixes CSV-13. |
ebourg |
|
CSVPrinter overhaul. Fixes CSV-45. |
yonik |
|
Excel strategy uses wrong separator. Fixes CSV-23. |
ebourg |
|
CSVStrategy has modifiable public static variables. Fixes CSV-49. Thanks to Bob Smith. |
ebourg |
|
Predefined format for MYSQL. Fixes CSV-48. |
ebourg |
|
Reduce visibility of methods in internal classes. Fixes CSV-46. |
ebourg |
|
ExtendedBufferedReader does too much. Fixes CSV-26. |
jacopoc |
|
Decide whether to keep the csv.writer subpackage. Fixes CSV-27. |
ebourg |
|