我有一个奇怪的错误,有时会发生某些时候没有。
使用与Jackson CSV数据格式化器1.9.4(jackson-dataformat-csv)的以下版本Jackson 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中的一个错误。
答案 0 :(得分:1)
这听起来像个错误。但有一点需要注意的是1.9.x版本并没有真正开发,所以如果可能的话你会想要使用Jackson 2.x的版本(最新版本为2.1.1)。
答案 1 :(得分:0)
您可以通过将pojo的属性名称限制为小于20来避免ArrayIndexOutOfBound异常。如果您在代码中使用任何十进制格式化程序,则可能会出现异常。 1.9.4是错误的,2.0绝对是一个更好的版本