On Mon, 7 Sep 2020 12:05:07 GMT, Michael McMahon <micha...@openjdk.org> wrote:
> Continuing this review as a PR on github with the comments below > incorporated. I expect there will be a few more iterations before integrating. > > On 06/09/2020 19:47, Alan Bateman wrote: >> On 26/08/2020 15:24, Michael McMahon wrote: >>> >>> As I mentioned the other day, I wasn't able to use the suggested method on >>> Windows which returns an absolute path. So, I added a method to WindowsPath >>> which returns the path in the expected UTF-8 encoding as a byte[]. Let me >>> know what you think of that. >>> >>> There is a fair bit of other refactoring and simplification done also. Next >>> version is at: >>> >>> http://cr.openjdk.java.net/~michaelm/8245194/impl.webrev/webrev.9/ >>> >> Adding a method to WindowsPath to encode the path using UTF-8 is okay but I >> don't think we should be caching it as the encoding for sun_path is an >> outlier on Windows. I'm also a bit dubious about encoding a relative path >> when the resolved path (before encoding) is > 247 chars. The documentation >> on the MS site isn't very completely and I think there are a number points >> that require clarification to fully understand how this will work with >> relative, directly relative and drive relative paths. >> > > Maybe it would be better to just use the path returned from toString() and do > the conversion to UTF-8 externally. That would leave WindowsPath unchanged. > >> In the same area, the new PathUtil is a bit inconsistent with the existing >> provider code. One suggestion is to add a method to >> AbstractFileSystemProvider instead. That is the base class the platform >> providers and would be a better place to get the file path in bytes. >> > > Okay, I gave the method a name that is specific to Unix domain sockets > because this UTF-8 strangeness is not likely to be useful by other components. > >> One other comment on the changes to the file system provider it should be >> okay to change UnixUserPrinipals ad its fromUid and fromGid method to be >> public. This would mean that the patch shouldn't need to add UnixUserGroup >> (the main issue is that class is that it means we end up with two classes >> with static factory methods doing the same thing). > > Okay, that does simplify it a bit. > > Thanks, > Michael. > >> -Alan. >> >> >> >> >> >> This pull request has now been integrated. Changeset: 6bb7e45e Author: Michael McMahon <micha...@openjdk.org> URL: https://git.openjdk.java.net/jdk/commit/6bb7e45e Stats: 6187 lines in 74 files changed: 5040 ins; 722 del; 425 mod 8245194: Unix domain socket channel implementation Reviewed-by: erikj, dfuchs, alanb, chegar ------------- PR: https://git.openjdk.java.net/jdk/pull/52