On Wed, 24 May 2023 15:25:37 GMT, Roger Riggs <rri...@openjdk.org> wrote:
>> In `java.io.File`, change the constructors `File(File,String)` and >> `File(String,String)` so that they do not for typical cases return a `File` >> whose path has a trailing name separator. > > src/java.base/unix/classes/java/io/UnixFileSystem.java line 109: > >> 107: if (len > 1 && s.charAt(len - 1) == '/') >> 108: return s.substring(0, len - 1); >> 109: return s; > > If there are multiple trailing `/`, is it sufficient to remove only a single > `/`? > Does this have the same result as `normalize(pathname)`? The main calling context is if (parent.path.isEmpty()) { this.path = FS.resolve(FS.getDefaultParent(), FS.normalize(child)); } else { this.path = FS.resolve(parent.path, FS.normalize(child)); } where `parent` is non-`null` and already normalized. Thus both components should already be normalized and multiple trailing `/` impossible. I _think_ that it should give the same result as `normalize(pathname)`. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14109#discussion_r1204421403