Missing null writes when writing Object[] values (original) (raw)

(moved from FasterXML/jackson-dataformat-csv#116 by @georgewfraser)

When writing arrays to CSV, if there is a null, columns get written out of order. Reproduced in 2.7.1 with this test: https://gist.github.com/georgewfraser/164647fbaca61aadf9ee :

@Test
public void objectArray() throws IOException {
    CsvSchema schema = CsvSchema.builder()
                                .addColumn("a", CsvSchema.ColumnType.NUMBER)
                                .addColumn("b", CsvSchema.ColumnType.NUMBER)
                                .setUseHeader(true)
                                .build();
    ObjectWriter writer = Config.CSV.writer(schema);
    StringWriter out = new StringWriter();
    SequenceWriter sequence = writer.writeValues(out);

    sequence.write(new Object[]{ 1, 2 });
    sequence.write(new Object[]{ null, 2 });
    sequence.write(new Object[]{ null, null });
    sequence.write(new Object[]{ 1, null });

    assertEquals("\"a\",\"b\"\n" +
                 "1,2\n" +
                 ",2\n" +
                 ",\n" +
                 "1,\n", out.toString());
}