On Fri, 24 Sep 2021 11:28:09 GMT, Masanori Yano <my...@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 reviewed the change.  It is reasonable to fix the parsing of the pre-release 
version and the build version be consistent with parsing of the version number 
which currently skips consecutive delimiters.

The spec is unclear on whether an empty token separated by the delimiters is 
ignored.  The spec may needs some clarification.

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

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

Reply via email to