Skip to content

Crashes when generating maven-metadata.xml for artifacts with '+' in version #69

@djcoleman

Description

@djcoleman

This is definitely an edge case, but Offliner fails to parse version strings containing a '+'. This was discovered because the artifact in question was com/google/errorprone/javac/9+181-r4173-1/javac-9+181-r4173-1.jar. If this is added to a manifest and offliner is run without the -M option to generate metadata for it, the following exception is thrown:

Exception in thread "main" org.commonjava.maven.atlas.ident.version.InvalidVersionSpecificationException: '9+181-r4173-1': Failed to parse version: Lexical error at line 1, column 2.  Encountered: "+" (43), after : ""
	at org.commonjava.maven.atlas.ident.util.VersionUtils.createFromSpec(VersionUtils.java:54)
	at org.commonjava.maven.atlas.ident.ref.SimpleProjectVersionRef.getVersionSpec(SimpleProjectVersionRef.java:214)
	at com.redhat.red.offliner.Main.generateMetadata(Main.java:699)
	at com.redhat.red.offliner.Main.run(Main.java:217)
	at com.redhat.red.offliner.Main.main(Main.java:144)
Caused by: org.commonjava.maven.atlas.ident.version.parse.TokenMgrError: Lexical error at line 1, column 2.  Encountered: "+" (43), after : ""
	at org.commonjava.maven.atlas.ident.version.parse.VersionParserTokenManager.getNextToken(VersionParserTokenManager.java:385)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_scan_token(VersionParser.java:909)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_3_16(VersionParser.java:702)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_3_19(VersionParser.java:746)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_3R_12(VersionParser.java:546)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_3R_7(VersionParser.java:677)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_3_3(VersionParser.java:637)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_3R_5(VersionParser.java:656)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_3_1(VersionParser.java:775)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.jj_2_1(VersionParser.java:359)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.anySpec(VersionParser.java:99)
	at org.commonjava.maven.atlas.ident.version.parse.VersionParser.parse(VersionParser.java:89)
	at org.commonjava.maven.atlas.ident.util.VersionUtils.createFromSpec(VersionUtils.java:40)
	... 4 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions