Skip to content

CsvParser.Feature.ALLOW_TRAILING_COMMA doesn't work with header columns #204

Closed
@bjmi

Description

@bjmi

When reading given CSV with jackson-dataformat-csv 2.9.9

name,age,
Roger,27,
Chris,53,

using following lines

List<Person> persons = new CsvMapper()
    .enable(CsvParser.Feature.ALLOW_TRAILING_COMMA)
    .readerFor(Person.class)
    .with(CsvSchema.emptySchema().withHeader())
    .<Person> readValues(csvAsString)
    .readAll();
...
class Person {
    public String name;
    public int age;
}

results in

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "" (class Person), not marked as ignorable (2 known properties: "name", "age"])
 at [Source: (StringReader); line: 2, column: 10] (through reference chain: Person[""])
	at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:823)
	at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1153)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1589)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1567)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
	at com.fasterxml.jackson.databind.MappingIterator.nextValue(MappingIterator.java:277)
	at com.fasterxml.jackson.databind.MappingIterator.readAll(MappingIterator.java:317)
	at com.fasterxml.jackson.databind.MappingIterator.readAll(MappingIterator.java:303)

The single trailing comma should be allowed in header columns too and should not raise an exception.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions