You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "John Ross (JIRA)" <ji...@apache.org> on 2015/08/15 04:29:46 UTC
[jira] [Resolved] (ARIES-1381) java.lang.ClassCastException:
org.apache.aries.subsystem.core.archive.GenericDirective cannot be cast to
org.apache.aries.subsystem.core.archive.VersionRangeAttribute
[ https://issues.apache.org/jira/browse/ARIES-1381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Ross resolved ARIES-1381.
------------------------------
Resolution: Fixed
http://svn.apache.org/r1696014
Search specifically for a version attribute rather than a parameter when determining the version range of an imported package.
Add test.
> java.lang.ClassCastException: org.apache.aries.subsystem.core.archive.GenericDirective cannot be cast to org.apache.aries.subsystem.core.archive.VersionRangeAttribute
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ARIES-1381
> URL: https://issues.apache.org/jira/browse/ARIES-1381
> Project: Aries
> Issue Type: Bug
> Components: Subsystem
> Affects Versions: subsystem-2.0.2
> Reporter: Wouter Bancken
> Assignee: John Ross
> Priority: Minor
>
> Example:
> Import-Package: org.objectweb.asm;version:="5.0.4,5.0.4]",org.objectweb.asm.signature;version:="[5.0.4,5.0.4]",org.objectweb.asm.tree;version:="[5.0.4,5.0.4]"
> This Import-Package header will cause a "GenericDirective cannot be cast to VersionRangeAttribute" error thrown by the ImportPackageHeader class.
> This is caused by the fact that the custom version directive is interpreted as the version attribute by the getVersionRangeAttribute method.
> What should have happened is:
> 1. The subsystem install should have succeeded.
> 2. The version should have been treated as a custom directive.
> 3. The actual package import versions would assume the default of [0.0.0,infinity) since a version attribute was not specified.
> Link to mailinglist discussion: http://mail-archives.apache.org/mod_mbox/aries-user/201508.mbox/%3CCAL5nZgTwUpc05MY4mWNL3D8-2g13u2it6kYd6JG_ueZNWKJOjA%40mail.gmail.com%3E
> Caused by: java.lang.ClassCastException: org.apache.aries.subsystem.core.archive.GenericDirective cannot be cast to org.apache.aries.subsystem.core.archive.VersionRangeAttribute
> at org.apache.aries.subsystem.core.archive.ImportPackageHeader$Clause.getVersionRangeAttribute(ImportPackageHeader.java:155)
> at org.apache.aries.subsystem.core.archive.ImportPackageRequirement.<init>(ImportPackageRequirement.java:42)
> at org.apache.aries.subsystem.core.archive.ImportPackageHeader$Clause.toRequirement(ImportPackageHeader.java:159)
> at org.apache.aries.subsystem.core.archive.ImportPackageHeader.toRequirements(ImportPackageHeader.java:218)
> at org.apache.aries.subsystem.core.internal.BundleResource.computeOsgiWiringPackageRequirements(BundleResource.java:210)
> at org.apache.aries.subsystem.core.internal.BundleResource.computeRequirementsOtherThanService(BundleResource.java:240)
> at org.apache.aries.subsystem.core.internal.BundleResource.computeRequirementsAndCapabilities(BundleResource.java:216)
> at org.apache.aries.subsystem.core.internal.BundleResource.<init>(BundleResource.java:74)
> at org.apache.aries.subsystem.core.internal.RawSubsystemResource.addResource(RawSubsystemResource.java:435)
> at org.apache.aries.subsystem.core.internal.RawSubsystemResource.computeResources(RawSubsystemResource.java:420)
> at org.apache.aries.subsystem.core.internal.RawSubsystemResource.<init>(RawSubsystemResource.java:130)
> at org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:90)
> at org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:54)
> ... 55 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)