posted 14 years ago
Hi,
We have a very strange problem with loading jars (which are symlinks).
We are loading about 20 jars inside a certain directory and all are ok, except 1 sometimes (x.jar)
Lets say the files are inside /opt/shared/lib and ls /opt/shared/lib shows:
a.jar -> /opt/a/a.jar
b.jar -> /opt/b/b.jar
c.jar -> /opt/c/c.jar
d.jar -> /opt/d/d.jar
x.jar -> /opt/x/x.jar
For some reason loading x always gives the exception:
Caused by: java.security.AccessControlException: access denied (java.io.FilePermission /opt/x/x.jar read)
When we look at /opt/x/x.jar, the permissions are fine. Now comes the strange part.
After some tries we ended up with (d.jar was obsolete):
a.jar -> /opt/a/a.jar
b.jar -> /opt/b/b.jar
c.jar -> /opt/c/c.jar
x.jar -> /opt/x/x.jar
and everything works as expected.
Then we:
1. remove the symlink x.jar
2. add a new (dummy) file to this directory
3. make the symlink again
4. remove the dummy file
Now the problem occurs again and we get the above io.FilePermission exception.
Now if we:
1. remove the symlink
2. make the symlink again
The exception is gone, it seems as if the symlinks takes the physical place of the dummy file on the filesystem.
Redoing the above sequences gives again the FilePermission exception and finally OK again.
Some background info, the OS is Solaris 10 (sparc) using UFS filesystem. JDK used is 1.5.0_06 but have tested it using 1.6.0_18 with same results.