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.index にリストされています。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 を試しましたが、結果は同じでした。
ありがとう!スティーブ