Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
I am trying aries-subsystem. The installation fails, if a bundle without Bundle-ManifestVersion in the manifest is installed.
I actually was trying to install a feature subsystem containing a bundle that had a package import to org.slf4j. This failed if the org.slf4j:log4s-over-slf4j:1.6.5 bundle was installed. That latter bundle does not export (but import) the package required by the subsystem and does not have a Bundle-ManifestVersion in its manifest.
The code failed at line 81 of ExportedBundleImpl from the org.apache.aries.application.modeling bundle. The offending code is:
String bmVersion = attrs.getValue(Constants.BUNDLE_MANIFESTVERSION);
if (symbolicName == null || bmVersion == null) {
InvalidAttributeException iax = new InvalidAttributeException(MessageUtil.getMessage("INCORRECT_MANDATORY_HEADERS",
new Object[]
));
logger.debug(LOG_EXIT, "ExportedBundleImpl", iax);
throw iax;
}
I think the Bundle-ManifestVersion is not a required manifest header (in contrast to the Bundle-SymbolicName), so if bmVersion is null it should be set to "1" (the default according to the OSGi spec) instead of failing.