Uploaded image for project: 'Aries'
  1. Aries
  2. ARIES-1540

Blueprint NamespaceHandler can't resolve XSD in offline mode

    XMLWordPrintableJSON

    Details

      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

            Activity

              People

              • Assignee:
                jbonofre Jean-Baptiste Onofré
                Reporter:
                jbonofre Jean-Baptiste Onofré
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: