On Wed, 21 Oct 2020 16:31:06 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.
>>>
>>>
>>>
>>>
>>>
>>>
>
> Michael McMahon has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains 36 additional 
> commits since the last revision:
> 
>  - Merge branch 'master' into unixdomainchannels
>  - updated one error in review
>  - further test update from Daniel
>  - forgot to stage updated test files in last commit
>  - update from Daniel's test comments
>  - Merge branch 'master' into unixdomainchannels
>  - final feedback from Alan
>  - Merge branch 'master' into unixdomainchannels
>  - - Alan's review patch from Oct 18
>    - Reverted changes to JFR unit tests
>  - - added NullTest and fix in SocketChannel.open
>    - updated test bug ids
>  - ... and 26 more: 
> https://git.openjdk.java.net/jdk/compare/8c9391a4...01d7cf53

Changes requested by chegar (Reviewer).

test/jdk/java/nio/channels/unixdomain/Bind.java line 51:

> 49:         if (!supported()) {
> 50:             System.out.println("Unix domain channels not supported");
> 51:             return;

Here it would be better to throw the `jtreg.SkippedException`, rather than 
silently returning.  Same comment for any other tests that check supported-ness 
before continuing to execute.

test/jdk/java/nio/channels/unixdomain/Bind.java line 66:

> 64:             SocketChannel.open(StandardProtocolFamily.UNIX).close();
> 65:         } catch (UnsupportedOperationException e) {
> 66:             return false;

In this case `ServerSocketChannel.open(UNIX)` should also throw UOE.

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

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

Reply via email to