On Thu, 21 Jul 2022 17:10:12 GMT, Roger Riggs <rri...@openjdk.org> wrote:
>> For a `String` āsā, `s.indexOf(int)` can never return a value `>= >> s.length()` so change the check >> >> int pos = syntaxAndInput.indexOf(':'); >> if (pos <= 0 || pos == syntaxAndInput.length()) >> >> to >> >> if (pos <= 0) > > src/java.base/share/classes/jdk/internal/jrtfs/JrtFileSystem.java line 178: > >> 176: public PathMatcher getPathMatcher(String syntaxAndInput) { >> 177: int pos = syntaxAndInput.indexOf(':'); >> 178: if (pos <= 0 || pos == syntaxAndInput.length()) { > > Is this really a different bug? Should it be checking for `length() - 1` to > throw IAE. > That would then throw if there was no string after the syntax selector; for > example "glob:" You have a point there. It does not want the ":" to be at the first position so it should not want it at the last position as the "pattern" part of the string would be empty. That fits with the specification IllegalArgumentException.html - If the parameter does not take the form: syntax:pattern ------------- PR: https://git.openjdk.org/jdk/pull/9595