RFR (13) [testbug]: 8227422: sun/net/www/protocol/file/DirPermissionDenied.java failed on Windows 2016 because DirPermissionDenied directory has no read permission
Frank Yuan
frank.yuan at oracle.com
Thu Jul 11 04:03:50 UTC 2019
Hi Daniel
I have filed another bug https://bugs.openjdk.java.net/browse/JDK-8227566 to refine the bug.
And, I tested on Windows 7, the expected exception is raised... I will test on more platform.
Thanks
Frank
> -----Original Message-----
> From: Daniel Fuchs [mailto:daniel.fuchs at oracle.com]
> Sent: Wednesday, July 10, 2019 9:25 PM
> To: frank.yuan at oracle.com
> Cc: OpenJDK Network Dev list
> Subject: Re: RFR (13) [testbug]: 8227422: sun/net/www/protocol/file/DirPermissionDenied.java failed on Windows 2016 because
> DirPermissionDenied directory has no read permission
>
> Hi Franck, Vyom,
>
> On 10/07/2019 08:34, Vyom Tewari26 wrote:
> > that's what i suspected, but test is passing at my local env even after
> > i changes the permission to 733.
> > Vyom
>
> Argh!
>
> Of course, the test should ideally throw an AssertionError if
> the expected exception is not raised.
> And you will discover that chmod doesn't work on windows:
>
> Something like this seems to be missing:
>
> @@ -54,6 +54,7 @@
> try {
> URLConnection uc = url.openConnection();
> uc.connect();
> + throw new AssertionError("connect should have failed");
> } catch (IOException e) {
> // OK
> } catch (Exception e) {
> @@ -63,6 +64,7 @@
> try {
> URLConnection uc = url.openConnection();
> uc.getInputStream();
> + throw new AssertionError("getInputStream should have failed");
> } catch (IOException e) {
> // OK
> } catch (Exception e) {
> @@ -72,8 +74,6 @@
> try {
> URLConnection uc = url.openConnection();
> uc.getContentLengthLong();
> - } catch (IOException e) {
> - // OK
> } catch (Exception e) {
> throw new RuntimeException("Failed " + e);
> }
>
> But if you do that - then the test will consistently fail on
> windows. Maybe we should do it though, and add an @require
> tag to skip windows... Or use the java.nio.files APIs with
> PosixAttributeView [2] (if supported) or ACL view [3] (if posix
> is not available) to change the file readability instead
> of using chmod...
>
> Side note: the length of the file can be obtained even if the directory
> is not readable:
>
> $ mkdir ~/test/notreadable
> $ chmod 333 ~/test/notreadable
>
> $ ls -l ~/test | grep notr
> d-wx-wx-wx+ 2 dfuchs owner 68 Jul 10 10:43 notreadable
>
> $ ls -l ~/test/notreadable
> ls: notreadable: Permission denied
>
> As per [1] the issue was that sometimes a NPE was thrown, so for
> getContentLengthLong() it is enough to verify that no stray
> exception is thrown - which the test does adequately.
>
> best regards,
>
> -- daniel
>
> [1] https://bugs.openjdk.java.net/browse/JDK-6977851
> [2]
> https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/attribute/PosixFileAttributeView.html
> [3]
> https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/attribute/AclFileAttributeView.html
More information about the net-dev
mailing list