Announcement Announcement Module
Collapse
No announcement yet.
Error deploying simple bundle Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Error deploying simple bundle

    Hi,

    I am getting very strange error when trying to deploy a bundle.
    It is strange cause it says that ""Bundle-SymbolicName" header must be specified"

    Checked manifest 100 times and header is there. Bundle deploys fine with "pax-runner --platform=equinox --version=3.5.0".

    Is there some manifest mangling going on during deployment? Is there a way to jack up trace level to see exactly what is the deal with it?

    I tried both M2 and latest published CI build.

    Here is manifest (package names changed to protect the innocent so line length could be a little off):
    Code:
    Manifest-Version: 1.0
    Export-Package: com.company.product.shared;version="1.0.0.B";uses:="javax.
     persistence,javax.xml.bind.annotation",com.company.product.shared.documen
     t;version="1.0.0.B";uses:="com.company.product.shared,org.joda.time,org.s
     pringframework.core.io",com.company.product.shared.infrastructure;version
     ="1.0.0.B";uses:="javax.sql,org.springframework.jdbc.datasource",com.
     company.product.shared.infrastructure.dataloader;version="1.0.0.B";uses:=
     "com.company.product.shared.infrastructure,org.dbunit.operation,org.sprin
     gframework.core.io,org.springframework.dao,org.springframework.jdbc.c
     ore,org.springframework.jdbc.core.metadata,org.springframework.jdbc.s
     upport",com.company.product.shared.infrastructure.hibernate;version="1.0.
     0.B";uses:="com.company.product.shared.infrastructure,com.company.product.sha
     red.infrastructure.dataloader,org.hibernate,org.hibernate.criterion,o
     rg.hibernate.type,org.springframework.core.io",com.company.product.shared
     .infrastructure.hibernate.nestedset;version="1.0.0.B";uses:="com.Vendor.
     insight.shared,javax.persistence,org.hibernate,org.hibernate.event,or
     g.hibernate.transform",com.company.product.shared.security;version="1.0.0
     .B";uses:="org.springframework.beans.factory,org.springframework.cont
     ext.support,org.springframework.dao,org.springframework.security,org.
     springframework.security.userdetails",com.company.product.shared.support;
     version="1.0.0.B";uses:="org.joda.time,org.springframework.beans",com
     .company.product.shared.ui.context.support;version="1.0.0.B";uses:="org.s
     pringframework.ui.context",com.company.product.shared.util;version="1.0.0
     .B"
    Bundle-Classpath: .
    Implementation-Version: 1.0.0.B-SNAPSHOT
    Specification-Vendor: Vendor
    Built-By: dsklyut
    Bundle-Name: Vendor Shared
    Bundle-Vendor: Vendor
    Implementation-Vendor: Vendor
    Implementation-Vendor-Id: com.company.product
    Build-Jdk: 1.6.0_13
    Bundle-Version: 1.0.0.B
    Bundle-ManifestVersion: 2
    Bundle-SymbolicName: com.company.product.shared
    Specification-Version: 1.0.0.B-SNAPSHOT
    Import-Package: javax.persistence,javax.sql,javax.xml.bind.annotation,
     org.apache.commons.lang.builder,org.apache.commons.logging,org.dbunit
     ;resolution:=optional,org.dbunit.database;resolution:=optional,org.db
     unit.dataset;resolution:=optional,org.dbunit.dataset.xml;resolution:=
     optional,org.dbunit.ext.db2;resolution:=optional,org.dbunit.ext.h2;re
     solution:=optional,org.dbunit.ext.mssql;resolution:=optional,org.dbun
     it.ext.oracle;resolution:=optional,org.dbunit.operation;resolution:=o
     ptional,org.hibernate,org.hibernate.classic,org.hibernate.connection,
     org.hibernate.criterion,org.hibernate.engine,org.hibernate.event,org.
     hibernate.impl,org.hibernate.transform,org.hibernate.type,org.hiberna
     te.util,org.joda.time,org.joda.time.format,org.slf4j,org.springframew
     ork.beans;version="[2.5.6, 3.0.1)",org.springframework.beans.factory;
     version="[2.5.6, 3.0.1)",org.springframework.context;version="[2.5.6,
      3.0.1)",org.springframework.context.support;version="[2.5.6, 3.0.1)"
     ,org.springframework.core.io;version="[2.5.6, 3.0.1)",org.springframe
     work.core.io.support;version="[2.5.6, 3.0.1)",org.springframework.dao
     ;version="[2.5.6, 3.0.1)",org.springframework.jdbc.core;version="[2.5
     .6, 3.0.1)",org.springframework.jdbc.core.metadata;version="[2.5.6, 3
     .0.1)",org.springframework.jdbc.datasource;version="[2.5.6, 3.0.1)",o
     rg.springframework.jdbc.support;version="[2.5.6, 3.0.1)",org.springfr
     amework.security;version="[2.0.4.A, 3.0.0)",org.springframework.secur
     ity.userdetails;version="[2.0.4.A, 3.0.0)",org.springframework.ui.con
     text;version="[2.5.6, 3.0.1)",org.springframework.util;version="[2.5.
     6, 3.0.1)"
    Here is stack trace from dump:
    Code:
    java.lang.RuntimeException: org.osgi.framework.BundleException: The "Bundle-SymbolicName" header must be specified
    	at com.springsource.kernel.deployer.app.legacy.SingleBundleApplication.deploy(SingleBundleApplication.java:144)
    	at com.springsource.kernel.deployer.core.internal.StandardApplicationDeployer.deploy(StandardApplicationDeployer.java:392)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
    	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    	at $Proxy98.deploy(Unknown Source)
    	at com.springsource.kernel.deployer.hot.HotDeploymentFileSystemListener.deploy(HotDeploymentFileSystemListener.java:191)
    	at com.springsource.kernel.deployer.hot.HotDeploymentFileSystemListener.deployIfNotDeployed(HotDeploymentFileSystemListener.java:202)
    	at com.springsource.kernel.deployer.hot.HotDeploymentFileSystemListener.onChange(HotDeploymentFileSystemListener.java:97)
    	at com.springsource.util.io.FileSystemChecker.notifyListeners(FileSystemChecker.java:182)
    	at com.springsource.util.io.FileSystemChecker.check(FileSystemChecker.java:145)
    	at com.springsource.kernel.io.fs.WatchTask.run(WatchTask.java:67)
    	at java.lang.Thread.run(Thread.java:637)
    Caused by: org.osgi.framework.BundleException: The "Bundle-SymbolicName" header must be specified
    	at org.eclipse.osgi.internal.resolver.StateBuilder.validateHeaders(StateBuilder.java:196)
    	at org.eclipse.osgi.internal.resolver.StateBuilder.createBundleDescription(StateBuilder.java:50)
    	at org.eclipse.osgi.internal.resolver.StateObjectFactoryImpl.createBundleDescription(StateObjectFactoryImpl.java:32)
    	at com.springsource.kernel.osgi.framework.equinox.DependencyCalculator.createBundleDescription(DependencyCalculator.java:361)
    	at com.springsource.kernel.osgi.framework.equinox.DependencyCalculator.addBundle(DependencyCalculator.java:349)
    	at com.springsource.kernel.osgi.framework.equinox.DependencyCalculator.satisfyImportPackage(DependencyCalculator.java:323)
    	at com.springsource.kernel.osgi.framework.equinox.DependencyCalculator.doSatisfyConstraints(DependencyCalculator.java:251)
    	at com.springsource.kernel.osgi.framework.equinox.DependencyCalculator.calculateDependencies(DependencyCalculator.java:136)
    	at com.springsource.kernel.osgi.framework.equinox.EquinoxBundleInstaller.satisfyConstraints(EquinoxBundleInstaller.java:193)
    	at com.springsource.kernel.osgi.framework.equinox.EquinoxBundleInstaller.satisfyConstraints(EquinoxBundleInstaller.java:178)
    	at com.springsource.kernel.deployer.app.legacy.SingleBundleApplication.deploy(SingleBundleApplication.java:126)
    	... 26 more

  • #2
    Further research: If bundle is wrapped in a par - it deploys just dandy.

    Confused.

    Comment


    • #3
      deployment with a plan fails with the same "Bundle-SymbolicName" missing error.

      Comment


      • #4
        solution

        No cause for alarm. Finally figured it out.
        It was one of the dependencies that was failing resolution:

        Joda-Time - Java date and time API 1.6.0.

        Bundle-Symbolicname vs. BundleSymbolicName in the Manifest.

        Can dm server please log which bundle in dependency chain actually fails?

        Comment


        • #5
          Dmitry, apologies for the problem you've encountered, and many thanks for documenting your investigation and the cause of the problem.

          I've opened DMS-1119 to improve the error handling so that it's clear which bundle caused the problem.

          Comment

          Working...
          X