[ 
https://issues.apache.org/jira/browse/ARIES-1381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Ross updated ARIES-1381:
-----------------------------
       Assignee: John Ross
    Description: 
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

  was:
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

        Summary: java.lang.ClassCastException: 
org.apache.aries.subsystem.core.archive.GenericDirective cannot be cast to 
org.apache.aries.subsystem.core.archive.VersionRangeAttribute  (was: 
ClassCastException when parsing custom version directive in an Import-Package 
header)

> 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)

Reply via email to