Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4995918

Policy Settings cause Applet failure/StackOverflowError

XMLWordPrintable

    • 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)
      ======================================================================

            mullan Sean Mullan
            gmanwanisunw Girish Manwani (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: