Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
blueprint-core-1.6.1
-
None
Description
When the NamespaceHandler is offline, it fails to resolve the XSD:
17:18:44,952 | WARN | pool-27-thread-1 | l$NamespaceHandlerSetImpl$Loader 544 | 16 - org.apache.aries.blueprint.core - 1.6.1 | Dynamically adding namespace handler http://cxf.apache.org/configuration/beans to bundle org.talend.esb.job.controller/6.2.0.SNAPSHOT 17:18:44,955 | WARN | pool-27-thread-1 | l$NamespaceHandlerSetImpl$Loader 544 | 16 - org.apache.aries.blueprint.core - 1.6.1 | Dynamically adding namespace handler http://cxf.apache.org/configuration/parameterized-types to bundle org.talend.esb.job.controller/6.2.0.SNAPSHOT 17:18:44,956 | ERROR | pool-27-thread-1 | container.BlueprintContainerImpl 437 | 16 - org.apache.aries.blueprint.core - 1.6.1 | Unable to start blueprint container for bundle org.talend.esb.job.controller/6.2.0.SNAPSHOT org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'ptp:ParameterizedInt' to a(n) 'simpleType definition' component. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)[:] at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)[:] at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser.reportSchemaError(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDAttributeTraverser.traverseNamedAttr(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDAttributeTraverser.traverseLocal(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseLocal(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseGlobal(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDHandler.traverseSchemas(Unknown Source)[:] at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)[:] at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)[:] at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)[:] at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)[:] at org.apache.xerces.jaxp.validation.XMLSchemaFactory.newSchema(Unknown Source)[:] at org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.createSchema(NamespaceHandlerRegistryImpl.java:637)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.doGetSchema(NamespaceHandlerRegistryImpl.java:458)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.getSchema(NamespaceHandlerRegistryImpl.java:443)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:343)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)[16:org.apache.aries.blueprint.core:1.6.1] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[26:org.apache.aries.util:1.1.1] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[26:org.apache.aries.util:1.1.1] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[26:org.apache.aries.util:1.1.1] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[26:org.apache.aries.util:1.1.1] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[26:org.apache.aries.util:1.1.1] at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$2.call(EquinoxEventPublisher.java:189)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1280)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1263)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.notifyEventHooksPrivileged(EquinoxEventPublisher.java:186)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:146)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:75)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:67)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:102)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.container.Module.publishEvent(Module.java:466)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.container.Module.start(Module.java:457)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:392)[org.eclipse.osgi-3.10.2.jar:] at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:411)[org.eclipse.osgi-3.10.2.jar:] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1262)[9:org.apache.karaf.features.core:4.0.5] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:840)[9:org.apache.karaf.features.core:4.0.5] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1152)[9:org.apache.karaf.features.core:4.0.5] at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:1048)[9:org.apache.karaf.features.core:4.0.5] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_60] at java.lang.Thread.run(Thread.java:745)[:1.8.0_60]
The problem is located on the NamespaceHandler. The following fix does the trick:
diff --git a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java index 86ad15b..fd8ea52 100644 --- a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java +++ b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java @@ -541,16 +541,20 @@ public class NamespaceHandlerRegistryImpl implements NamespaceHandlerRegistry, S } } // Find a compatible namespace handler - LOGGER.warn("Dynamically adding namespace handler {} to bundle {}/{}", - nsUri, bundle.getSymbolicName(), bundle.getVersion()); h = findCompatibleNamespaceHandler(nsUri); if (h != null) { - URL url = h.getSchemaLocation(rid); + URL url = h.getSchemaLocation(namespaceURI); + if (url == null) { + url = h.getSchemaLocation(rid); + } if (isCorrectUrl(url)) { + LOGGER.warn("Dynamically adding namespace handler {} to bundle {}/{}", + nsUri, bundle.getSymbolicName(), bundle.getVersion()); return createLSInput(url, id, namespaceURI); } } } + LOGGER.warn("Unable to find namespace handler for {}", namespaceURI); return null; }
Attachments
Issue Links
- relates to
-
CXF-7183 CXF Blueprint namespace don't work well with blueprint-core 1.7.x
- Closed