ZipFileSystem: Unable to get effective rights from ACL: Overlapped I/O operation is in progress.
Austin Lee
austin7lee at hotmail.com
Sat Jul 21 18:40:51 PDT 2012
Sure here is some more interesting information on the issue.
First thing, I did try to access the a shared on my network and the issue does seem to have gone away much quicker w/o resetting the system. I'll confirm this with more testing to ensure it was not because of idle activity. In any case it does look encouraging.
It is interesting you mention about the domain. Yesterday I was offline and testing my application without internet connection. I attempted to reproduce the problem offline all day yesterday but was not able to reproduce. This morning I plugged my system onto the network and the problem came up within an hour or two in attempting to reproduce the problem. One side note is I usually log in first to my laptop then contact my domain controller via VPN.
One other things I tried before accessing the network share.
Logged off the windows then logged back in and still received the error.Attempted to open the jar with 7zip, had no issues.Copied the file using explorer no problem.Attempted to access the copied jar via ZipFileSystem in the same process, got the error.
I'm going to try and reproduce the issue again and quickly follow that up with an attempt to access the network share to eliminate the possibility it was due to idle activity.
Austin Lee
Date: Sun, 22 Jul 2012 01:59:35 +0100
From: Alan.Bateman at oracle.com
To: austin7lee at hotmail.com
CC: nio-discuss at openjdk.java.net
Subject: Re: ZipFileSystem: Unable to get effective rights from ACL: Overlapped I/O operation is in progress.
On 21/07/2012 23:46, Austin Lee wrote:
Hello,
I've been using the ZipFileSystem and ran into this
random issue on my laptop.
java.io.IOException: Unable to get effective rights
from ACL: Overlapped I/O operation is in progress.
at
sun.nio.fs.WindowsFileSystemProvider.getEffectiveAccess(WindowsFileSystemProvider.java:344)
~[na:1.7.0_03]
at
sun.nio.fs.WindowsFileSystemProvider.checkAccess(WindowsFileSystemProvider.java:397)
~[na:1.7.0_03]
at
com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:124)
~[zipfs.jar:1.7.0_03]
at
com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:139)
~[zipfs.jar:1.7.0_03]
For me this issue is hard to reproduce since it seems like
it needs to have a series of specific events to occur. I've
narrowed it down to these scenarios on my Win7 machine laptop (SSD
harddrive).
The issue seems to only occur with when making the
laptop go to sleep (ie pushing the sleep button or closing
the laptop) either during a read or write through the
zipfilesystem.
Killing the process and restarting the process does not
make the issue go ways. Rerunning the my program will make
this exception occur repeatedly.
Restarting the laptop will fix the issue until next
occurance.
I attempted to call win api CancelIOEx with a file
handle with overlapped attribute enable in the same
process space via JNI but that does seem to have an
effect.
If the issue appears, leaving the laptop alone for long
period of time w/o restart makes the problem go away.
The issue is not tied to any one particular jar file,
rather its any jar file I attempt to open will cause the
exception to appear.
I'm wondering if there are any workaround for this
issue either through java or windows api? It seems there
may be some issue with the ACL of the current user. I'm
not a win api expert but any suggestions where I can
detect and recover from this issue would be great.
Austin Lee
Someone else this up on the list a few days ago too and we would
like to get to the bottom of this issue. The ZIP provider is
checking that it has read access to the zip or JAR file and this
requires determines the effective access to the file. Determining
the effective access several calls into Windows to read the ACL and
get the effective access and we seem to have a problem there. We
haven't been able to duplicate it and maybe you can tell us a bit
more about the environment to help us. The main thing to know is
whether this machine is in a domain or not? One possibility is that
when you put the machine to sleep it shuts down the network and that
disrupts the connection to the domain controller. You also mention
that the problem disappears if you leave the machine alone, I would
be interested to know if attempt to access a share on the network
then will the issue "correct itself" quicker (which would be an
indication that it's re-connecting to the domain server).
-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/nio-discuss/attachments/20120721/6c363878/attachment-0001.html
More information about the nio-discuss
mailing list