Skip to content

"graphql-java-extended-scalars" is not a valid module name #70

Closed
@draftcode

Description

@draftcode

Describe the bug
A clear and concise description of what the bug is.

Automatic-Module-Name is specified in the manifest, but it is an invalid module name. Because of this, while I haven't articulated on what condition this triggers, a compilation error happens.

To Reproduce

To check the module validity:

$ wget https://repo1.maven.org/maven2/com/graphql-java/graphql-java-extended-scalars/18.1/graphql-java-extended-scalars-18.1.jar
$ jar --describe-module --file graphql-java-extended-scalars-18.1.jar
Unable to derive module descriptor for: graphql-java-extended-scalars-18.1.jar
Automatic-Module-Name: graphql-java-extended-scalars: Invalid module name: 'graphql-java-extended-scalars' is not a Java identifier

I tried to create a minimal case for the compilation error, but cannot trace down what triggers an error.


As for the module name's specification, I think this part is the relevant part:

https://docs.oracle.com/javase/specs/jls/se9/html/jls-7.html#jls-7.7

ModuleDeclaration: {Annotation} [open] module Identifier {. Identifier} { {ModuleDirective} }

This is not about Automatic-Module-Name part, but based on this module declaration, the module name must be a series of Java identifier concatenated with '.'. In this "graphql-java-extended-scalars" case, hyphens cannot be a part of valid Java identifier, it's not a valid identifier.

It seems that "Automatic-Module-Name" is set since c885c60.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions