Bug 916790

Summary: bundle creation fails even when using a valid version string
Product: [Other] RHQ Project Reporter: John Mazzitelli <mazz>
Component: ProvisioningAssignee: John Mazzitelli <mazz>
Status: ON_QA --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 4.6CC: hrupp
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 916793 (view as bug list) Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 916793    
Attachments:
Description Flags
see the version string in this bundle's recipe - this causes the error none

Description John Mazzitelli 2013-02-28 22:27:36 UTC
Created attachment 704013 [details]
see the version string in this bundle's recipe - this causes the error

If I have a bundle whose version string is "3.13.1.201302221022", the bundle fails to be created.

Recipe snippet:

    <rhq:bundle name="Test Version String"
                version="3.13.1.201302221022"
                description="a small bundle with a small.properties file">

The bundle upload wizard gives error:

[Distribution File] Failed to upload bundle distribution file
javax.ejb.EJBException: java.lang.NumberFormatException: For input string: "201302221022"

server log:

17:21:58,004 ERROR [org.jboss.ejb3.invocation] (http--0.0.0.0-7080-1) JBAS014134: EJB Invocation failed on component BundleManagerBean for method public abstract org.rhq.core.domain.bundle.BundleVersion org.rhq.enterprise.server.bundle.BundleManagerLocal.createBundleVersion(org.rhq.core.domain.auth.Subject,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception: javax.ejb.EJBException: java.lang.NumberFormatException: For input string: "201302221022"
...
Caused by: java.lang.NumberFormatException: For input string: "201302221022"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) [rt.jar:1.7.0_11]
	at java.lang.Integer.parseInt(Integer.java:495) [rt.jar:1.7.0_11]
	at java.lang.Integer.<init>(Integer.java:677) [rt.jar:1.7.0_11]
	at org.apache.maven.artifact.versioning.ComparableVersion.parseItem(ComparableVersion.java:427) [rhq-core-util-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
	at org.apache.maven.artifact.versioning.ComparableVersion.parseVersion(ComparableVersion.java:413) [rhq-core-util-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
	at org.apache.maven.artifact.versioning.ComparableVersion.<init>(ComparableVersion.java:322) [rhq-core-util-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
	at org.rhq.enterprise.server.bundle.BundleManagerBean.createBundleVersion(BundleManagerBean.java:496) [rhq-enterprise-server-ejb3.jar:4.7.0-SNAPSHOT]

Looks like a bug in ComparableVersion.

Comment 1 John Mazzitelli 2013-02-28 22:50:06 UTC
fixed ComparableVersion so it treats long numbers as strings (which is what they probably are meant to be treated as anyway, as in a timestamp such as 201302221030 which refers to 10:30 AM on February 22, 2013.

git commit to master: 8beb34b