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.
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.