-
Bug
-
Resolution: Fixed
-
P3
-
5.0
-
b46
-
x86
-
windows_2000, windows_xp
Name: gm110360 Date: 02/17/2004
FULL PRODUCT VERSION :
java version "1.5.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta-b32c)
Java HotSpot(TM) Client VM (build 1.5.0-beta-b32c, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows 2000 [Version 5.00.2195]
A DESCRIPTION OF THE PROBLEM :
I was following the Java Security Tutotial at
http://java.sun.com/docs/books/tutorial/security1.2/tour1/index.html
It work with
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)
but not java 1.5.0.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1, Add the following into $(HOME)\.java.policy file
grant codeBase "http://java.sun.com/docs/books/tutorial/security1.2/tour1/example-1dot2/" {
permission java.io.FilePermission "writetest", "write";
};
2, Type the follwoing,
appletviewer http://java.sun.com/docs/books/tutorial/security1.2/tour1/example-1dot2/WriteFile.html
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Successfully wrote to the file named writetest-- go take a look at it!
ACTUAL -
java.lang.StackOverflowError exception.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at
sun.net.www.protocol.http.HttpURLConnection.<init>(HttpURLConnection.java:465)
at sun.net.www.protocol.http.Handler.openConnection(Handler.java:44)
at sun.net.www.protocol.http.Handler.openConnection(Handler.java:39)
at java.net.URL.openConnection(URL.java:943)
at sun.security.provider.PolicyFile.canonicalizeCodebase(PolicyFile.java:1773)
at sun.security.provider.PolicyFile.access+600(PolicyFile.java:262)
at sun.security.provider.PolicyFile+4.run(PolicyFile.java:1259)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1255)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1203)
at sun.security.provider.PolicyFile.implies(PolicyFile.java:1158)
at java.security.ProtectionDomain.implies(ProtectionDomain.java:195)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:249)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1023)
at java.net.InetAddress.getAllByName0(InetAddress.java:1116)
at java.net.InetAddress.getAllByName0(InetAddress.java:1097)
at java.net.InetAddress.getAllByName(InetAddress.java:1060)
at java.net.InetAddress.getByName(InetAddress.java:957)
at java.net.URLStreamHandler.getHostAddress(URLStreamHandler.java:409)
at java.net.URLStreamHandler.hostsEqual(URLStreamHandler.java:427)
at java.net.URLStreamHandler.sameFile(URLStreamHandler.java:374)
at java.net.URLStreamHandler.equals(URLStreamHandler.java:307)
at java.net.URL.equals(URL.java:840)
at java.security.CodeSource.matchLocation(CodeSource.java:362)
at java.security.CodeSource.implies(CodeSource.java:289)
at sun.security.provider.PolicyFile.addPermissions(PolicyFile.java:1350)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1299)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1262)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1203)
at sun.security.provider.PolicyFile.implies(PolicyFile.java:1158)
at java.security.ProtectionDomain.implies(ProtectionDomain.java:195)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:249)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1023)
at java.net.InetAddress.getAllByName0(InetAddress.java:1116)
at java.net.InetAddress.getAllByName0(InetAddress.java:1097)
at java.net.InetAddress.getAllByName(InetAddress.java:1060)
at java.net.InetAddress.getByName(InetAddress.java:957)
at java.net.URLStreamHandler.getHostAddress(URLStreamHandler.java:409)
at java.net.URLStreamHandler.hostsEqual(URLStreamHandler.java:427)
at java.net.URLStreamHandler.sameFile(URLStreamHandler.java:374)
at java.net.URLStreamHandler.equals(URLStreamHandler.java:307)
at java.net.URL.equals(URL.java:840)
at java.security.CodeSource.matchLocation(CodeSource.java:362)
at java.security.CodeSource.implies(CodeSource.java:289)
at sun.security.provider.PolicyFile.addPermissions(PolicyFile.java:1350)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1299)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1262)
at sun.security.provider.PolicyFile.getPermissions(PolicyFile.java:1203)
at sun.security.provider.PolicyFile.implies(PolicyFile.java:1158)
at java.security.ProtectionDomain.implies(ProtectionDomain.java:195)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:249)
at java.security.AccessController.checkPermission(AccessController.java:401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1023)
at java.net.InetAddress.getAllByName0(InetAddress.java:1116)
at java.net.InetAddress.getAllByName0(InetAddress.java:1097)
at java.net.InetAddress.getAllByName(InetAddress.java:1060)
at java.net.InetAddress.getByName(InetAddress.java:957)
at java.net.URLStreamHandler.getHostAddress(URLStreamHandler.java:409)
at java.net.URLStreamHandler.hostsEqual(URLStreamHandler.java:427)
at java.net.URLStreamHandler.sameFile(URLStreamHandler.java:374)
at java.net.URLStreamHandler.equals(URLStreamHandler.java:307)
at java.net.URL.equals(URL.java:840)
...
REPRODUCIBILITY :
This bug can be reproduced always.
(Incident Review ID: 238775)
======================================================================
- duplicates
-
JDK-5002250 Stack overflow exception (recursion) in swing applets
-
- Closed
-
-
JDK-5025375 Applet failed to start if policy file contains https codeBase
-
- Closed
-
- relates to
-
JDK-4510874 infinite recursion in PolicyFile
-
- Resolved
-