Program: 163468
Project: 163468
Buggy source:
@Test public void testColumnValues(){
  final Object[][] expectedValueOnFirstBatch=new Object[][]{{1,2},{true,false},{'C',null}};
  final Object[][] expectedValueOnSecondBatch=new Object[][]{{3,4},{null,false},{'C','C'},{null,new BigDecimal("String_Node_Str")}};
  BatchedObjectColumnProcessor processor=new BatchedObjectColumnProcessor(2){
    @Override public void batchProcessed(    int rowsInThisBatch){
      List<List<Object>> columnValues=getColumnValuesAsList();
      Map<Integer,List<Object>> columnsByIndex=getColumnValuesAsMapOfIndexes();
      Object[][] expectedValues=getBatchesProcessed() == 0 ? expectedValueOnFirstBatch : expectedValueOnSecondBatch;
      assertEquals(columnValues.size(),expectedValues.length);
      for (int i=0; i < rowsInThisBatch; i++) {
        assertEquals(columnValues.get(i).size(),rowsInThisBatch);
        assertEquals(columnValues.get(i).toArray(),expectedValues[i]);
        assertEquals(columnsByIndex.get(i).toArray(),expectedValues[i]);
      }
      try {
        getColumnValuesAsMapOfNames();
        fail("String_Node_Str");
      }
 catch (      Exception e) {
      }
      assertEquals(getHeaders(),new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"});
    }
  }
;
  processor.convertFields(Conversions.toInteger()).add("String_Node_Str");
  processor.convertFields(Conversions.toBoolean()).add("String_Node_Str");
  processor.convertFields(Conversions.toChar()).add("String_Node_Str");
  processor.convertIndexes(Conversions.toBigDecimal()).add(3);
  CsvParserSettings settings=new CsvParserSettings();
  settings.setHeaderExtractionEnabled(true);
  settings.setRowProcessor(processor);
  new CsvParser(settings).parse(new StringReader(INPUT));
}

Fixed version (ground truth):
@Test public void testColumnValues(){
  final Object[][] expectedValueOnFirstBatch=new Object[][]{{1,2},{true,false},{'C',null}};
  final Object[][] expectedValueOnSecondBatch=new Object[][]{{3,4},{null,false},{'C','C'},{null,new BigDecimal("String_Node_Str")}};
  BatchedObjectColumnProcessor processor=new BatchedObjectColumnProcessor(2){
    @Override public void batchProcessed(    int rowsInThisBatch){
      List<List<Object>> columnValues=getColumnValuesAsList();
      Map<Integer,List<Object>> columnsByIndex=getColumnValuesAsMapOfIndexes();
      Object[][] expectedValues=getBatchesProcessed() == 0 ? expectedValueOnFirstBatch : expectedValueOnSecondBatch;
      assertEquals(columnValues.size(),expectedValues.length);
      for (int i=0; i < expectedValues.length; i++) {
        assertEquals(columnValues.get(i).size(),rowsInThisBatch);
        assertEquals(columnValues.get(i).toArray(),expectedValues[i]);
        assertEquals(columnsByIndex.get(i).toArray(),expectedValues[i]);
      }
      try {
        getColumnValuesAsMapOfNames();
        fail("String_Node_Str");
      }
 catch (      Exception e) {
      }
      assertEquals(getHeaders(),new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"});
    }
  }
;
  processor.convertFields(Conversions.toInteger()).add("String_Node_Str");
  processor.convertFields(Conversions.toBoolean()).add("String_Node_Str");
  processor.convertFields(Conversions.toChar()).add("String_Node_Str");
  processor.convertIndexes(Conversions.toBigDecimal()).add(3);
  CsvParserSettings settings=new CsvParserSettings();
  settings.setHeaderExtractionEnabled(true);
  settings.setRowProcessor(processor);
  new CsvParser(settings).parse(new StringReader(INPUT));
}