RFR: 8250678: ModuleDescriptor.Version parsing treats empty segments inconsistently

Masanori Yano myano at openjdk.java.net
Thu Oct 21 07:54:04 UTC 2021


On Mon, 27 Sep 2021 08:22:02 GMT, Alan Bateman <alanb at openjdk.org> wrote:

>> Could you please review the 8250678 bug fixes?
>> 
>> The `parse` method of ModuleDescriptor.Version class behaves incorrectly when the input string contains consecutive delimiters.
>> 
>> The `parse` method treats strings as three sections, but the parsing method differs between the method for the version sections and the ones for others. In version sections, the `parse` method takes a single character in a loop and determines whether it is a delimiter. In pre and build sections, the parse method takes two characters in a loop and determines whether the second character is the delimiter. Therefore, if the string contains a sequence of delimiters in pre or build section, the `parse` method treats character at the odd-numbered position as a token and the one at even-numbered as a delimiter.
>> 
>> A string containing consecutive delimiters is an incorrect version string, but this behavior does not follow the API specification.
>> https://download.java.net/java/early_access/jdk18/docs/api/java.base/java/lang/module/ModuleDescriptor.Version.html
>> 
>> Therefore, I propose to fix the parsing method of pre and build section in the same way as the version.
>
> I think this is okay, just maybe unusual to have repeated punctuation creating the case where a component is empty. @mbreinhold may wish to comment on this PR.

@AlanBateman I have been waiting for a reply from @mbreinhold , but I haven't received it yet. I would like to contribute this PR as soon as possible. Do you have any ideas on how to do it?

-------------

PR: https://git.openjdk.java.net/jdk/pull/5679


More information about the core-libs-dev mailing list