2

EclipseLink MOXy JAXB 実装を使用して、いくつかの XML データを umarsal しようとしています。独自の型のメンバーを持つ次の注釈付きクラスがあります。

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");       

1 秒間ハングした後、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 を試しましたが、結果は同じでした。

ありがとう!スティーブ

4

1 に答える 1

2

注: 私はEclipseLink JAXB (MOXy)のリーダーであり、JAXB (JSR-222)エキスパート グループのメンバーです。

アップデート

この問題の修正は、EclipseLink 2.5.2 および 2.6.0 にチェックインされています。2013 年 10 月 11 日以降、この修正を含むナイトリー ビルドを次のリンクからダウンロードできます。


元の答え

表示されている問題を再現できました。次のリンクを使用して、この問題の進行状況を追跡できます。

于 2013-10-05T10:29:55.930 に答える