java - 使用 XStream 时出现 ArrayIndexOutOfBoundsException

标签 java xml xstream

我不确定这怎么可能,但我正在运行的程序给我一个奇怪的错误。我在 for each 循环中收到 ArrayIndexOutOfBoundsException: -1。整个错误如下:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at com.thoughtworks.xstream.core.util.OrderRetainingMap.entrySet(OrderRetainingMap.java:77)
at java.util.HashMap.putMapEntries(HashMap.java:511)
at java.util.HashMap.putAll(HashMap.java:784)
at com.thoughtworks.xstream.core.util.OrderRetainingMap.<init>(OrderRetainingMap.java:36)
at com.thoughtworks.xstream.converters.reflection.FieldDictionary.buildMap(FieldDictionary.java:135)
at com.thoughtworks.xstream.converters.reflection.FieldDictionary.fieldsFor(FieldDictionary.java:76)
at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:126)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:81)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
at com.thoughtworks.xstream.XStream.marshal(XStream.java:895)
at com.thoughtworks.xstream.XStream.marshal(XStream.java:884)
at com.thoughtworks.xstream.XStream.toXML(XStream.java:857)
at com.thoughtworks.xstream.XStream.toXML(XStream.java:844)
at unl.cse.assignments.DataConverter.output(DataConverter.java:210)
at unl.cse.assignments.DataConverter.main(DataConverter.java:121)

第 210 行是 pw.print 行:

for(Product p : products)
    {
        if(AwardTicket.class.isInstance(p)){
            xstream.alias("awardTicket", AwardTicket.class);
            pw.print(xstream.toXML(p) + "\n");
        }
}

(第 121 行只是调用输出)

我一直在调查这个错误很长一段时间,我无法找出它的原因。我假设 xstream 有问题,但我尝试了其他输出。

最佳答案

正如 Andreas 所指出的,这实际上是一个 bug in XStream已在 1.4.6 版中修复。 XStream最新版可以下载here .

关于java - 使用 XStream 时出现 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32775698/

相关文章:

python - 当网站也发出 HTTP 错误代码时如何访问 xml 响应

java - XStream 流程注释

java - XStream通过所需的构造函数反序列化对象

java - 数组中的舍入单元格同时仍显示其未舍入副本的问题

java - JMS 队列到 JTable 更新 [现在在更改后出现异常]

java - 用于序列化@RequestBody的单例bean有多个对象

java - xstream可以反序列化复杂的数组吗?

java - 如何使用 skyepub 读取 epub 文件?

css - xml 计数列表中的元素在 firefox 中不起作用

java - 将 http url 传递到 SAXParser XML 中