가끔 언젠가 발생하는 이상한 오류가 있습니다.Jackson CSV Writer가 ArrayIndexOutOfBoundsException을 throw합니다.
잭슨 CSV 데이터 포맷터 1.9.4 (jackson-dataformat-csv)에서 다음 버전의 잭슨 1.9.9와 동일한 데이터를 사용하면 아래 오류가 발생합니다.
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.codehaus.jackson.util.TextBuffer.append(TextBuffer.java:458)
at org.codehaus.jackson.io.SegmentedStringWriter.write(SegmentedStringWriter.java:69)
at com.fasterxml.jackson.dataformat.csv.impl.CsvWriter._flushBuffer(CsvWriter.java:514)
at com.fasterxml.jackson.dataformat.csv.impl.CsvWriter.endRow(CsvWriter.java:252)
at com.fasterxml.jackson.dataformat.csv.CsvGenerator.finishRow(CsvGenerator.java:579)
at com.fasterxml.jackson.dataformat.csv.CsvGenerator.close(CsvGenerator.java:277)
at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:2584)
at org.codehaus.jackson.map.ObjectMapper.writeValueAsString(ObjectMapper.java:2097)
일부 열에서는 이중 쉼표를 사용합니다. 제 생각에는 CsvGenerator 내의 버그입니다.
소스 코드도 제공하십시오. – Robin
소스 코드 것 \t 최종 CsvSchema 스키마 CsvSchema.builder =() disableEscapeChar() setUseHeader (TRUE) .setColumnSeparator ('' ')이다.. \t \t \t \t \t .addColumn ("C1") \t \t \t \t .addColumn ("C2") \t \t \t \t \t .addColumn ("C3"). \t \t \t 최종 문자열 writeValueAsString = this.mapper.schemaBasedWriter (스키마) .writeValueAsString (this.data); – Ben