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 03:34:46 UTC

[jira] [Updated] (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 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)