-
Bug
-
Resolution: Not an Issue
-
P3
-
None
-
6
-
x86
-
windows_xp
When user replace checkPermission and invoke java.security.Policy.refresh() in the program,
infinite call occurs and causes StackOverFlow.
REPRODUCE :
1) Modify the attached compile.bat and invoke to compile test programs.
2) Modify(to set JAVA_HOME in) on.bat and off.bat
on.bat : Use user defined security manager
off.bat : Use default security manager
3) Invoke on.bat and off.bat
You can see the follwoing stack trace with invoking on.bat
(full stacktrace is in log-prop-on.txt)
Exception in thread "main" java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at java.io.FilePermission.init(FilePermission.java:183)
at java.io.FilePermission.<init>(FilePermission.java:249)
at sun.net.www.protocol.file.FileURLConnection.getPermission(FileURLConnection.java:200)
at sun.security.provider.PolicyFile.canonicalizeCodebase(PolicyFile.java:1780)
at sun.security.provider.PolicyFile.access$700(PolicyFile.java:263)
at sun.security.provider.PolicyFile$5.run(PolicyFile.java:1211)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1207)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1155)
at sun.security.provider.PolicyFile.implies(PolicyFile.java:1110)
at java.security.ProtectionDomain.implies(ProtectionDomain.java:213)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:301)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at OverrideSecurityManager.checkPermission(OverrideSecurityManager.java:6)
at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
at java.io.File.isDirectory(File.java:752)
.........
infinite call occurs and causes StackOverFlow.
REPRODUCE :
1) Modify the attached compile.bat and invoke to compile test programs.
2) Modify(to set JAVA_HOME in) on.bat and off.bat
on.bat : Use user defined security manager
off.bat : Use default security manager
3) Invoke on.bat and off.bat
You can see the follwoing stack trace with invoking on.bat
(full stacktrace is in log-prop-on.txt)
Exception in thread "main" java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at java.io.FilePermission.init(FilePermission.java:183)
at java.io.FilePermission.<init>(FilePermission.java:249)
at sun.net.www.protocol.file.FileURLConnection.getPermission(FileURLConnection.java:200)
at sun.security.provider.PolicyFile.canonicalizeCodebase(PolicyFile.java:1780)
at sun.security.provider.PolicyFile.access$700(PolicyFile.java:263)
at sun.security.provider.PolicyFile$5.run(PolicyFile.java:1211)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1207)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1155)
at sun.security.provider.PolicyFile.implies(PolicyFile.java:1110)
at java.security.ProtectionDomain.implies(ProtectionDomain.java:213)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:301)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at OverrideSecurityManager.checkPermission(OverrideSecurityManager.java:6)
at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
at java.io.File.isDirectory(File.java:752)
.........