We're getting the LinkageError below that might stem from the packaging of your runtime. I'm looking for workarounds. (My email to email@example.com
on Monday has gone unanswered.)
I'm not sure, but it looks like org.xml.sax.ErrorHandler was loaded both by the boot class loader (presumably from 1.6 rt.jar) and the bundle class loader (presumably from runtime jar abbot lib xml-apis.jar). I can run normally using both dev/eclipse and CI/command-line, but when I install WindowTester and run with those configurations, I get the error.
We also embed xml-apis.jar in the plug-in that is failing. For now we have found a workaround for running that involves reconfiguring other libraries, but we can't deploy that way, so it invalidates the test configuration.
I wonder if it is necessary to export the packages from xml-api.jar in the runtime. Shall l retry without those exports? Or, if those are needed by your components, is it possible to refactor the runtime into runtime-api and runtime-ops, for the client-visible API's and the component-required classes? That might enable our test code to rely on the API's without putting the abbot xml-api's into our classloader namespace.
I've tried tracing the classloading to identify exactly which loaders are being called and the current delegation scheme, but not successfully.
Caused by: java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.apache.xerces.jaxp.validation.XMLSchemaFactory.getErrorHandler()Lorg/xml/sax/ErrorHandler;" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, org/apache/xerces/jaxp/validation/XMLSchemaFactory, and its superclass loader (instance of <bootloader>), have different Class objects for the type org/xml/sax/ErrorHandler used in the signature
at java.lang.Class.getDeclaredConstructors0(Native Method)