#928284 libxalan2-java: Breaks JOSM with javaws: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found

#928284#5
Date:
2019-05-01 07:43:09 UTC
From:
To:
Hello,

when libxalan2-java is installed, I cannot run JOSM (https://josm.openstreetmap.de/) through javaws anymore.

Reproduce:
* apt install icedtea-netx libxalan2-java
* Click https://josm.openstreetmap.de/download/josm.jnlp in your browser
* Alternatively: Download the file and exec: javaws josm.jnlp

Versions:
* libxalan2-java 2.7.2-2
* openjdk-11-jre 11.0.3+7-4
* icedtea-netx 1.7.2-2


Error details:

netx: Launch Error: Could not launch JNLP file. ( (Provider for class javax.xml.validation.SchemaFactory cannot be created (javax.xml.validation.SchemaFactory: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found)))
net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report.
	at java.desktop/net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:582)
	at java.desktop/net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:945)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at java.desktop/net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:576)
	... 1 more
Caused by: javax.xml.validation.SchemaFactoryConfigurationError: Provider for class javax.xml.validation.SchemaFactory cannot be created
	at java.xml/javax.xml.validation.SchemaFactoryFinder.findServiceProvider(SchemaFactoryFinder.java:350)
	at java.xml/javax.xml.validation.SchemaFactoryFinder._newFactory(SchemaFactoryFinder.java:217)
	at java.xml/javax.xml.validation.SchemaFactoryFinder.newFactory(SchemaFactoryFinder.java:144)
	at java.xml/javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:245)
	at org.openstreetmap.josm.tools.XmlUtils.newXmlSchemaFactory(XmlUtils.java:55)
	at org.openstreetmap.josm.data.preferences.PreferencesReader.validateXML(PreferencesReader.java:97)
	at org.openstreetmap.josm.data.preferences.PreferencesReader.validateXML(PreferencesReader.java:85)
	at org.openstreetmap.josm.data.Preferences.load(Preferences.java:411)
	at org.openstreetmap.josm.data.Preferences.init(Preferences.java:522)
	at org.openstreetmap.josm.gui.MainApplication.mainJOSM(MainApplication.java:782)
	at org.openstreetmap.josm.gui.MainApplication$3.processArguments(MainApplication.java:277)
	at org.openstreetmap.josm.gui.MainApplication.main(MainApplication.java:704)
	... 6 more
Caused by: java.util.ServiceConfigurationError: javax.xml.validation.SchemaFactory: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found
	at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:588)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1211)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1220)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1267)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1266)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1269)
	at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)
	at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)
	at java.xml/javax.xml.validation.SchemaFactoryFinder$2.run(SchemaFactoryFinder.java:339)
	at java.xml/javax.xml.validation.SchemaFactoryFinder$2.run(SchemaFactoryFinder.java:335)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.xml/javax.xml.validation.SchemaFactoryFinder.findServiceProvider(SchemaFactoryFinder.java:335)
	... 17 more


Thanks in advance!

#928284#10
Date:
2023-02-26 02:03:40 UTC
From:
To:
Dear Maintainer,

I have exactly the same problem in Bullseye... Removing libxalan2-java package fixes the problem.

% javaws josm-1.jnlp
Codebase matches codebase manifest attribute, and application is signed. Continuing. See: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/no_redeploy.html for details.
Starting application [org.openstreetmap.josm.gui.MainApplication] ...
2023-02-26 03:00:06.278 INFO: Log level is at INFO (INFO, 800)
netx: Launch Error: Could not launch JNLP file. ( (Provider for class javax.xml.validation.SchemaFactory cannot be created (javax.xml.validation.SchemaFactory: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found)))
net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report.
        at java.desktop/net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:582)
        at java.desktop/net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:945)
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.desktop/net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:576)
        ... 1 more
Caused by: javax.xml.validation.SchemaFactoryConfigurationError: Provider for class javax.xml.validation.SchemaFactory cannot be created
        at java.xml/javax.xml.validation.SchemaFactoryFinder.findServiceProvider(SchemaFactoryFinder.java:350)
        at java.xml/javax.xml.validation.SchemaFactoryFinder._newFactory(SchemaFactoryFinder.java:217)
        at java.xml/javax.xml.validation.SchemaFactoryFinder.newFactory(SchemaFactoryFinder.java:144)
        at java.xml/javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:245)
        at org.openstreetmap.josm.tools.XmlUtils.newXmlSchemaFactory(XmlUtils.java:58)
        at org.openstreetmap.josm.data.preferences.PreferencesReader.validateXML(PreferencesReader.java:97)
        at org.openstreetmap.josm.data.preferences.PreferencesReader.validateXML(PreferencesReader.java:85)
        at org.openstreetmap.josm.data.Preferences.loadDefaults(Preferences.java:502)
        at org.openstreetmap.josm.data.Preferences.init(Preferences.java:596)
        at org.openstreetmap.josm.gui.MainApplication.mainJOSM(MainApplication.java:825)
        at org.openstreetmap.josm.gui.MainApplication$3.processArguments(MainApplication.java:277)
        at org.openstreetmap.josm.gui.MainApplication.main(MainApplication.java:742)
        ... 6 more
Caused by: java.util.ServiceConfigurationError: javax.xml.validation.SchemaFactory: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found
        at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:589)
        at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1212)
        at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1221)
        at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1268)
        at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1267)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1270)
        at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300)
        at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385)
        at java.xml/javax.xml.validation.SchemaFactoryFinder$2.run(SchemaFactoryFinder.java:339)
        at java.xml/javax.xml.validation.SchemaFactoryFinder$2.run(SchemaFactoryFinder.java:335)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.xml/javax.xml.validation.SchemaFactoryFinder.findServiceProvider(SchemaFactoryFinder.java:335)
        ... 17 more

%