java - MOXy - 使用自包含类引导 JAXBContext 时出现 StackOverflowError

标签 java jaxb moxy

我正在尝试使用 EclipseLink MOXy JAXB 实现来编码一些 XML 数据。我有以下带注释的类,它有一个自己类型的成员:

package stackoverflow.q19191209;

import javax.xml.bind.annotation.*;

@XmlRootElement(name="Item")
public class Item
{
    @XmlAttribute(name="name")
    @XmlID
    private String m_name;

    @XmlAttribute(name="parent")
    @XmlIDREF 
    private Item m_parent;
}

此类列在 jaxb.in​​dex 中。当我尝试引导我的 JAXBContext 时:

JAXBContext context = JAXBContext.newInstance("stackoverflow.q19191209");       

它挂起一秒钟,然后给我一个 StackOverflowError:

Exception in thread "main" java.lang.StackOverflowError
    at java.util.HashMap$ValueIterator.<init>(HashMap.java:820)
    at java.util.HashMap$ValueIterator.<init>(HashMap.java:820)
    at java.util.HashMap.newValueIterator(HashMap.java:843)
    at java.util.HashMap$Values.iterator(HashMap.java:910)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.hasTextMapping(AnnotationsProcessor.java:3998)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.hasTextMapping(AnnotationsProcessor.java:4003)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.hasTextMapping(AnnotationsProcessor.java:4003)
...

当我使用默认的 JAXB 提供程序时,不会发生这种情况 - 它正确解码,并且所有关系都正确建立。这是 MOXy 的错误吗?

我尝试过 JDK 1.6.0_25 和 JDK 1.7.0_21,以及 MOXy 版本 2.5.0、2.5.1 和 2.6.0 - 相同的结果。

谢谢! 史蒂夫

最佳答案

注意:我是EclipseLink JAXB (MOXy) JAXB (JSR-222) 的领导者和成员专家组。

更新

此问题的修复已 checkin EclipseLink 2.5.2 和 2.6.0。从2013 年 10 月 11 日开始,您可以通过以下链接下载包含此修复的夜间版本:


原始答案

我已经能够重现您所看到的问题。您可以使用以下链接跟踪我们在此问题上的进展:

关于java - MOXy - 使用自包含类引导 JAXBContext 时出现 StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19191209/

相关文章:

java - 队列中的 2 路通知

java - 如何在多监视器配置中部署 JFrame

java - 在tomcat服务器中部署依赖的应用程序

XML Schema key/keyref - 如何使用它们?

java - 如何使用 JAXB 解码输入流?

java - 找不到 Java 类 java.util.ArrayList 和 MIME 媒体类型 application/json 的消息正文编写器

java - 如何在allure报告中显示历史趋势

java - 将 xml 模式选择元素解码为单独的列表

jaxb - 解码单个元素列表失败

java - 使用 MOXy 将 JsonObject 属性映射到 XML