2016-02-07 28 views
0

我試圖使用xjcOpenGL API Registry的RelaxNG模式生成JAXB綁定。這是投擲NullPointerException爲什麼xjc在這個RelaxNG精簡模式上窒息?

$ xjc -cp jaxb-extra-osgi-2.2.7.jar -relaxng-compact registry.rnc 
parsing a schema... 
Exception in thread "main" java.lang.NullPointerException 
    at com.sun.tools.internal.xjc.reader.Ring.get(Ring.java:82) 
    at com.sun.tools.internal.xjc.model.CPropertyInfo.<init>(CPropertyInfo.java:110) 
    at com.sun.tools.internal.xjc.model.CSingleTypePropertyInfo.<init>(CSingleTypePropertyInfo.java:57) 
    at com.sun.tools.internal.xjc.model.CAttributePropertyInfo.<init>(CAttributePropertyInfo.java:58) 
    at com.sun.tools.internal.xjc.reader.relaxng.ContentModelBinder.onAttribute(ContentModelBinder.java:119) 
    at com.sun.tools.internal.xjc.reader.relaxng.ContentModelBinder.onAttribute(ContentModelBinder.java:55) 
    at com.sun.xml.internal.rngom.digested.DAttributePattern.accept(DAttributePattern.java:58) 
    at com.sun.xml.internal.rngom.digested.DPatternWalker.onContainer(DPatternWalker.java:66) 
    at com.sun.xml.internal.rngom.digested.DPatternWalker.onGroup(DPatternWalker.java:87) 
    at com.sun.xml.internal.rngom.digested.DPatternWalker.onGroup(DPatternWalker.java:51) 
    at com.sun.xml.internal.rngom.digested.DGroupPattern.accept(DGroupPattern.java:59) 
    at com.sun.tools.internal.xjc.reader.relaxng.RELAXNGCompiler.bindContentModel(RELAXNGCompiler.java:150) 
    at com.sun.tools.internal.xjc.reader.relaxng.RELAXNGCompiler.compile(RELAXNGCompiler.java:143) 
    at com.sun.tools.internal.xjc.reader.relaxng.RELAXNGCompiler.build(RELAXNGCompiler.java:108) 
    at com.sun.tools.internal.xjc.ModelLoader.loadRELAXNG(ModelLoader.java:592) 
    at com.sun.tools.internal.xjc.ModelLoader.loadRELAXNGCompact(ModelLoader.java:580) 
    at com.sun.tools.internal.xjc.ModelLoader.load(ModelLoader.java:151) 
    at com.sun.tools.internal.xjc.ModelLoader.load(ModelLoader.java:104) 
    at com.sun.tools.internal.xjc.Driver.run(Driver.java:318) 
    at com.sun.tools.internal.xjc.Driver.run(Driver.java:185) 
    at com.sun.tools.internal.xjc.Driver._main(Driver.java:108) 
    at com.sun.tools.internal.xjc.Driver.access$000(Driver.java:65) 
    at com.sun.tools.internal.xjc.Driver$1.run(Driver.java:88) 

從我的類路徑中還有其他東西丟失?

我知道RelaxNG支持是實驗性的,所以也許它只是壞了。至於解決方法,我轉換架構XSD使用莊:

$ java -jar trang.jar -I rnc -O xsd registry.rnc registry.xsd 

回答

1

你的堆棧跟蹤似乎以匹配JAXB RI的單機版中的已知缺陷(JAXB-1066)。也許這在JDK中是同樣的問題。錯誤報告提供了一個補丁,但沒有人在那裏對它進行評論(還)。

+0

記者甚至包括了修復它的代碼,並且在一年中仍然沒有采取行動。真棒! –

相關問題