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