This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-csv.git
The following commit(s) were added to refs/heads/master by this push: new d8d5de6 [CSV-239] Cannot get headers in column order from CSVRecord. d8d5de6 is described below commit d8d5de6476ac411593bd34ca89492e74905372ab Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Sun May 19 09:32:46 2019 -0400 [CSV-239] Cannot get headers in column order from CSVRecord. Some NPE-proofing. --- src/main/java/org/apache/commons/csv/CSVParser.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/apache/commons/csv/CSVParser.java b/src/main/java/org/apache/commons/csv/CSVParser.java index 9615370..a3decdf 100644 --- a/src/main/java/org/apache/commons/csv/CSVParser.java +++ b/src/main/java/org/apache/commons/csv/CSVParser.java @@ -466,7 +466,7 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable { if (formatHeader != null) { hdrMap = this.format.getIgnoreHeaderCase() ? new TreeMap<>(String.CASE_INSENSITIVE_ORDER) : - new LinkedHashMap<>(); + new TreeMap<>(); String[] headerRecord = null; if (formatHeader.length == 0) { @@ -486,13 +486,15 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable { if (headerRecord != null) { for (int i = 0; i < headerRecord.length; i++) { final String header = headerRecord[i]; - final boolean containsHeader = hdrMap.containsKey(header); + final boolean containsHeader = header == null ? false : hdrMap.containsKey(header); final boolean emptyHeader = header == null || header.trim().isEmpty(); if (containsHeader && (!emptyHeader || !this.format.getAllowMissingColumnNames())) { - throw new IllegalArgumentException("The header contains a duplicate name: \"" + header + - "\" in " + Arrays.toString(headerRecord)); + throw new IllegalArgumentException("The header contains a duplicate name: \"" + header + + "\" in " + Arrays.toString(headerRecord)); + } + if (header != null) { + hdrMap.put(header, Integer.valueOf(i)); } - hdrMap.put(header, Integer.valueOf(i)); } } }