[
https://issues.apache.org/jira/browse/CAMEL-14561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17037026#comment-17037026
]
Guillaume Nodet commented on CAMEL-14561:
-----------------------------------------
The problem is caused by {{camel-xml-jaxb}} having an import package on
{{javax.xml.bind}} with a range {{[2.3.0,3.00)}}, while Karaf system bundle
exports the package in version 2.2.
To work around the problem, the camel features install its own jaxb-api bundle,
but it does not work as the {{JAXBContext}} interface used by the internal jaxb
implementation from the JDK does not use the one that is wired to camel (hence
the {{ClassCastException}}).
> Camel-Blueprint fails on JDK8 with NPE
> --------------------------------------
>
> Key: CAMEL-14561
> URL: https://issues.apache.org/jira/browse/CAMEL-14561
> Project: Camel
> Issue Type: Bug
> Components: camel-blueprint
> Reporter: Andrea Cosentino
> Priority: Major
> Fix For: 3.1.0
>
>
> {code:java}
> 17:59:47.865 ERROR
> [fileinstall-/home/oscerd/playground/apache-karaf-4.2.7/deploy] Unable to
> start container for blueprint bundle
> camel-context.xml/0.0.0org.osgi.service.blueprint.container.ComponentDefinitionException:
> Failed to create the JAXB binder : javax.xml.bind.JAXBException: Provider
> class com.sun.xml.internal.bind.v2.ContextFactory could not be instantiated:
> java.lang.NullPointerException - with linked
> exception:[java.lang.NullPointerException] at
> org.apache.camel.blueprint.handler.CamelNamespaceHandler.parseCamelContextNode(CamelNamespaceHandler.java:252)
> ~[?:?] at
> org.apache.camel.blueprint.handler.CamelNamespaceHandler.parse(CamelNamespaceHandler.java:204)
> ~[?:?] at
> org.apache.aries.blueprint.parser.Parser.parseCustomElement(Parser.java:1369)
> ~[!/:1.10.2] at
> org.apache.aries.blueprint.parser.Parser.loadComponents(Parser.java:427)
> ~[!/:1.10.2] at
> org.apache.aries.blueprint.parser.Parser.populate(Parser.java:331)
> ~[!/:1.10.2] at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:371)
> [!/:1.10.2] at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298)
> [!/:1.10.2] at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:311)
> [!/:1.10.2] at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:280)
> [!/:1.10.2] at
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:276)
> [!/:1.10.2] at
> org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:266)
> [!/:1.10.2] at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
> [!/:1.10.2] at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
> [!/:1.10.2] at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
> [!/:1.10.2] at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
> [!/:1.10.2] at
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
> [!/:1.10.2] at
> org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179)
> [org.apache.felix.framework-5.6.12.jar:?] at
> org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)
> [org.apache.felix.framework-5.6.12.jar:?] at
> org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)
> [org.apache.felix.framework-5.6.12.jar:?] at
> org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579)
> [org.apache.felix.framework-5.6.12.jar:?] at
> org.apache.felix.framework.Felix.startBundle(Felix.java:2174)
> [org.apache.felix.framework-5.6.12.jar:?] at
> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
> [org.apache.felix.framework-5.6.12.jar:?] at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260)
> [!/:3.6.4] at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233)
> [!/:3.6.4] at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520)
> [!/:3.6.4] at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365)
> [!/:3.6.4] at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316)
> [!/:3.6.4]Caused by: javax.xml.bind.JAXBException: Provider class
> com.sun.xml.internal.bind.v2.ContextFactory could not be instantiated:
> java.lang.NullPointerException at
> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
> ~[?:1.8.0_201] at
> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:129)
> ~[?:1.8.0_201] at
> javax.xml.bind.ContextFinder.find(ContextFinder.java:318) ~[?:1.8.0_201]
> at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:478)
> ~[?:1.8.0_201] at
> javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:435) ~[?:1.8.0_201]
> at
> org.apache.camel.impl.DefaultModelJAXBContextFactory.newJAXBContext(DefaultModelJAXBContextFactory.java:38)
> ~[?:?] at
> org.apache.camel.blueprint.handler.CamelNamespaceHandler.getJaxbContext(CamelNamespaceHandler.java:678)
> ~[?:?] at
> org.apache.camel.blueprint.handler.CamelNamespaceHandler.parseCamelContextNode(CamelNamespaceHandler.java:250)
> ~[?:?] ... 26 moreCaused by: java.lang.NullPointerException at
> javax.xml.bind.ContextFinder.handleClassCastException(ContextFinder.java:114)
> ~[?:1.8.0_201] at
> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:187)
> ~[?:1.8.0_201] at
> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:129)
> ~[?:1.8.0_201] at
> javax.xml.bind.ContextFinder.find(ContextFinder.java:318) ~[?:1.8.0_201]
> at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:478)
> ~[?:1.8.0_201] at
> javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:435) ~[?:1.8.0_201]
> at
> org.apache.camel.impl.DefaultModelJAXBContextFactory.newJAXBContext(DefaultModelJAXBContextFactory.java:38)
> ~[?:?] at
> org.apache.camel.blueprint.handler.CamelNamespaceHandler.getJaxbContext(CamelNamespaceHandler.java:678)
> ~[?:?] at
> org.apache.camel.blueprint.handler.CamelNamespaceHandler.parseCamelContextNode(CamelNamespaceHandler.java:250)
> ~[?:?] ... 26 more17:59:47.871 DEBUG
> [fileinstall-/home/oscerd/playground/apache-karaf-4.2.7/deploy] Sending
> blueprint container event BlueprintEvent[type=FAILURE, exception=Failed to
> create the JAXB binder : javax.xml.bind.JAXBException: Provider class
> com.sun.xml.internal.bind.v2.ContextFactory could not be instantiated:
> java.lang.NullPointerException
> {code}
> With a simple blueprint.xml. With JDK11 this is ok.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)