Herman Ciechanowiec created SM-5826:
---------------------------------------

             Summary: opensaml-4.3.2_1 fails to Install due to Invalid 
Import-Package Syntax
                 Key: SM-5826
                 URL: https://issues.apache.org/jira/browse/SM-5826
             Project: ServiceMix
          Issue Type: Bug
         Environment: OSGi Container (e.g., Apache Felix)
            Reporter: Herman Ciechanowiec


Attempting to install the 
{{org.apache.servicemix.bundles.opensaml-4.3.2_1.jar}} bundle in an OSGi 
environment results in a {{BundleException}}.

*Steps to Reproduce:*
 # Obtain the {{org.apache.servicemix.bundles.opensaml-4.3.2_1.jar}} bundle.
 # Attempt to install it into an OSGi container (e.g., using the Felix Web 
Console).
 # Observe the installation failure and associated error log.

*Error Log:*
{code:java}
26.04.2025 06:44:10.251 *ERROR* [Background Install 
/tmp/install10839402681172598319.tmp] org.apache.felix.http Cannot install or 
update bundle from /tmp/install10839402681172598319.tmp
org.osgi.framework.BundleException: Could not create bundle object.
        at org.apache.felix.framework.Felix.installBundle(Felix.java:3339)
        at 
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:147)
        at 
org.apache.felix.webconsole.internal.core.InstallHelper.doRun(InstallHelper.java:54)
 [org.apache.felix.webconsole:4.9.10]
        at 
org.apache.felix.webconsole.internal.core.BaseUpdateInstallHelper.doRun(BaseUpdateInstallHelper.java:101)
 [org.apache.felix.webconsole:4.9.10]
        at 
org.apache.felix.webconsole.internal.core.BaseUpdateInstallHelper.run(BaseUpdateInstallHelper.java:166)
 [org.apache.felix.webconsole:4.9.10]
        at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.IllegalArgumentException: invalid range 
"[3,4);resolution:=optional": invalid format
        at org.osgi.framework.VersionRange.<init>(VersionRange.java:169)
        at 
org.apache.felix.framework.util.manifestparser.ManifestParser.normalizeImportClauses(ManifestParser.java:366)
        at 
org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(ManifestParser.java:220)
        at 
org.apache.felix.framework.BundleRevisionImpl.<init>(BundleRevisionImpl.java:117)
        at 
org.apache.felix.framework.BundleImpl.createRevision(BundleImpl.java:1290)
        at org.apache.felix.framework.BundleImpl.<init>(BundleImpl.java:114)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:3287)
        ... 5 common frames omitted

{code}
*Analysis:* 
The root cause is an invalid syntax in the generated {{Import-Package}} 
manifest header within the bundle. Specifically, for the {{javax.annotation}} 
package, the entry is generated as: 
{{javax.annotation;version="[3,4);resolution:=optional"}}

The {{resolution:=optional}} directive is incorrectly placed _inside_ the 
version range string ({{{}"[3,4)"{}}}). According to OSGi specifications, 
directives should follow the version parameter, separated by a semicolon.

*Proposed Fix:* 
Modify the {{pom.xml}} for the {{org.apache.servicemix.bundles.opensaml}} 
project. Within the {{<properties>}} section, under 
{{{}<servicemix.osgi.import.pkg>{}}}, change the line for {{javax.annotation}} 
from:

{{javax.annotation;version="[3,4);resolution:=optional",}}

to: 

{{javax.annotation;version="[3,4)";resolution:=optional,}}

This correction places the {{resolution:=optional}} directive correctly after 
the version attribute, resolving the parsing error and allowing the bundle to 
be installed successfully.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to