You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2014/04/22 22:20:18 UTC
svn commit: r1589281 - in /commons/proper/csv/trunk/src:
main/java/org/apache/commons/csv/CSVRecord.java
test/java/org/apache/commons/csv/CSVRecordTest.java
Author: ggregory
Date: Tue Apr 22 20:20:17 2014
New Revision: 1589281
URL: http://svn.apache.org/r1589281
Log:
[CSV-111] CSVRecord.toMap() fails if row length shorter than header length.
Modified:
commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java
commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordTest.java
Modified: commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java
URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java?rev=1589281&r1=1589280&r2=1589281&view=diff
==============================================================================
--- commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java (original)
+++ commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java Tue Apr 22 20:20:17 2014
@@ -178,7 +178,10 @@ public final class CSVRecord implements
*/
<M extends Map<String, String>> M putIn(final M map) {
for (final Entry<String, Integer> entry : mapping.entrySet()) {
- map.put(entry.getKey(), values[entry.getValue().intValue()]);
+ final int col = entry.getValue().intValue();
+ if (col < values.length) {
+ map.put(entry.getKey(), values[col]);
+ }
}
return map;
}
Modified: commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordTest.java
URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordTest.java?rev=1589281&r1=1589280&r2=1589281&view=diff
==============================================================================
--- commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordTest.java (original)
+++ commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordTest.java Tue Apr 22 20:20:17 2014
@@ -160,6 +160,13 @@ public class CSVRecordTest {
this.validateMap(map, true);
}
+ @Test
+ public void testToMapWithShortRecord() throws Exception {
+ final CSVParser parser = CSVParser.parse("a,b", CSVFormat.DEFAULT.withHeader("A", "B", "C"));
+ final CSVRecord shortRec = parser.iterator().next();
+ shortRec.toMap();
+ }
+
private void validateMap(final Map<String, String> map, final boolean allowsNulls) {
assertTrue(map.containsKey("first"));
assertTrue(map.containsKey("second"));