Bug#912221: jabref: incompatible with openjdk 11
tony mancill
tmancill at debian.org
Tue Nov 6 20:12:27 GMT 2018
On Thu, Nov 01, 2018 at 02:22:26PM +0100, Emmanuel Bourg wrote:
> On 01/11/2018 01:54, tony mancill wrote:
>
> > I am definitely open to (and appreciative of) your suggestions.
>
> Hi Tony, even if the jaxb package doesn't yet provide the xjc executable
> (#905357), you can invoke it with:
>
> java -jar /usr/share/java/jaxb-xjc.jar
Hi Emmanuel,
It doesn't seem to be quite that straight-forward. I've spend a fair
amount of time trying to build up proper classpath, but actually trying
to use XJC to compile anything fails with classloader exceptions. For
example, I build up a command like the following:
XJC="java -cp /usr/share/java/xml-resolver.jar:/usr/share/java/jaxb-api.jar:/usr/share/java/jaxb-core.jar:/usr/share/java/jaxb-impl.jar:/usr/share/java/jaxb-jxc.jar:/usr/share/java/jaxb-xjc.jar -jar /usr/share/java/jaxb-xjc.jar"
And it dies with this exception stack, despite the xml-resolver being on
the classpath:
> parsing a schema...
> Exception in thread "main" java.lang.AssertionError: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
> - with linked exception:
> [java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
> at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getCustomizationContext(BindInfo.java:356)
> at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getCustomizationUnmarshaller(BindInfo.java:362)
> at com.sun.tools.xjc.reader.xmlschema.bindinfo.AnnotationParserFactoryImpl$1.<init>(AnnotationParserFactoryImpl.java:85)
> at com.sun.tools.xjc.reader.xmlschema.bindinfo.AnnotationParserFactoryImpl.create(AnnotationParserFactoryImpl.java:84)
> at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.createAnnotationParser(NGCCRuntimeEx.java:401)
> at com.sun.xml.xsom.impl.parser.state.annotation.action0(annotation.java:89)
> at com.sun.xml.xsom.impl.parser.state.annotation.enterElement(annotation.java:114)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.NGCCHandler.spawnChildFromEnterElement(NGCCHandler.java:114)
> at com.sun.xml.xsom.impl.parser.state.Schema.enterElement(Schema.java:317)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.NGCCHandler.revertToParentFromEnterElement(NGCCHandler.java:151)
> at com.sun.xml.xsom.impl.parser.state.foreignAttributes.enterElement(foreignAttributes.java:91)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.NGCCHandler.spawnChildFromEnterElement(NGCCHandler.java:114)
> at com.sun.xml.xsom.impl.parser.state.Schema.enterElement(Schema.java:229)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.Schema.enterElement(Schema.java:273)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.Schema.enterElement(Schema.java:309)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.Schema.enterElement(Schema.java:293)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.Schema.enterElement(Schema.java:221)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.sendEnterElement(NGCCRuntime.java:422)
> at com.sun.xml.xsom.impl.parser.state.Schema.enterElement(Schema.java:257)
> at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.startElement(NGCCRuntime.java:263)
> at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
> at com.sun.tools.xjc.util.SubtreeCutter.startElement(SubtreeCutter.java:108)
> at com.sun.tools.xjc.reader.ExtensionBindingChecker.startElement(ExtensionBindingChecker.java:150)
> at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
> at com.sun.tools.xjc.reader.xmlschema.parser.IncorrectNamespaceURIChecker.startElement(IncorrectNamespaceURIChecker.java:128)
> at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
> at com.sun.tools.xjc.reader.xmlschema.parser.CustomizationContextChecker.startElement(CustomizationContextChecker.java:193)
> at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
> at com.sun.tools.xjc.ModelLoader$SpeculationChecker.startElement(ModelLoader.java:455)
> at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
> at com.sun.tools.xjc.reader.internalizer.VersionChecker.startElement(VersionChecker.java:103)
> at java.xml/org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:551)
> at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:510)
> at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
> at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2708)
> at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
> at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
> at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
> at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
> at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
> at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
> at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
> at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
> at java.xml/org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
> at com.sun.xml.xsom.parser.JAXPParser.parse(JAXPParser.java:100)
> at com.sun.tools.xjc.ModelLoader$2.parse(ModelLoader.java:479)
> at com.sun.tools.xjc.ModelLoader$XMLSchemaParser.parse(ModelLoader.java:251)
> at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.parseEntity(NGCCRuntimeEx.java:381)
> at com.sun.xml.xsom.impl.parser.ParserContext.parse(ParserContext.java:128)
> at com.sun.xml.xsom.parser.XSOMParser.parse(XSOMParser.java:171)
> at com.sun.tools.xjc.ModelLoader.createXSOMSpeculative(ModelLoader.java:496)
> at com.sun.tools.xjc.ModelLoader.loadXMLSchema(ModelLoader.java:351)
> at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:162)
> at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:117)
> at com.sun.tools.xjc.Driver.run(Driver.java:354)
> at com.sun.tools.xjc.Driver.run(Driver.java:221)
> at com.sun.tools.xjc.Driver._main(Driver.java:144)
> at com.sun.tools.xjc.Driver.access$000(Driver.java:82)
> at com.sun.tools.xjc.Driver$1.run(Driver.java:103)
> Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
> - with linked exception:
> [java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
> at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:278)
> at javax.xml.bind.ContextFinder.find(ContextFinder.java:421)
> at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
> at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
> at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getCustomizationContext(BindInfo.java:336)
> ... 65 more
> Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory
> at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
> at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
> at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:122)
> at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:155)
> at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:276)
> ... 69 more
> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xml/resolver/CatalogManager
> at com.sun.tools.xjc.CatalogUtil.getCatalog(CatalogUtil.java:60)
> at com.sun.tools.xjc.Options.addCatalog(Options.java:842)
> at com.sun.tools.xjc.Options.parseArgument(Options.java:691)
> at com.sun.tools.xjc.Driver$OptionsEx.parseArgument(Driver.java:532)
> at com.sun.tools.xjc.Options.parseArguments(Options.java:857)
> at com.sun.tools.xjc.Driver.run(Driver.java:261)
> at com.sun.tools.xjc.Driver.run(Driver.java:221)
> at com.sun.tools.xjc.Driver._main(Driver.java:144)
> at com.sun.tools.xjc.Driver.access$000(Driver.java:82)
> at com.sun.tools.xjc.Driver$1.run(Driver.java:103)
> Caused by: java.lang.ClassNotFoundException: org.apache.xml.resolver.CatalogManager
> at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
> at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
> ... 10 more
> :xjc FAILED
> :xjc (Thread[Daemon worker,5,main]) completed. Took 1.19 secs.
Can you help me understand why this patch
(https://salsa.debian.org/java-team/jaxb/blob/master/debian/patches/04-xml-resolver-compatibility.patch)
was necessary? Perhaps it's related to the failure I'm seeing? I've
also started looking at updating jaxb 2.3.1, but it will take me a bit
of time.
Thank you,
tony
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-maintainers/attachments/20181106/71cf35ed/attachment-0001.sig>
More information about the pkg-java-maintainers
mailing list