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.

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

Commit messages:
 - 8250678: ModuleDescriptor.Version parsing treats empty segments 
inconsistently

Changes: https://git.openjdk.java.net/jdk/pull/5679/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5679&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8250678
  Stats: 26 lines in 2 files changed: 11 ins; 14 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5679.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5679/head:pull/5679

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

Reply via email to