JDK-4510751 : b82:appletviewer doesn't work on ja and throws java.lang.StackOverflowError
  • Type: Bug
  • Component: tools
  • Sub-Component: appletviewer
  • Affected Version: 1.4.0
  • Priority: P2
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: generic
  • CPU: generic
  • Submitted: 2001-10-04
  • Updated: 2001-10-15
  • Resolved: 2001-10-11
Related Reports
Relates :  
Description
---------------------------------------------
jdk    : j2sdk Merlin-beta3 b82
OS     : Solaris sparc 8 and 9 / x86 7
         Windows 98 2nd, NT SP6 japanese
         RedHat Linux 7.1
locale : ja locale
---------------------------------------------

Appletviewer throws "java.lang.StackOverflowError" and can not launch
application on ja locale.

This phenomenon is not seen in English locale.
And this problem does not occur on b81.

Steps to reproduce;
1) In case of Solaris or Linux, login with ja locale.
2) Install j2sdk merlin-beta3 b82
3) launch demo using appletviewer

   % appletviewer $JAVAHOME/demo/applets/Clock/example1.html
or
   % appletviewer $JAVAHOME/demo/applets/CardTest/example1.html

Then, you can see the following exception and demo does not work.

java.lang.StackOverflowError
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.io.Converters.getDefaultEncodingName(Converters.java:69)
        at java.lang.StringCoding.encode(StringCoding.java:368)
        at java.lang.String.getBytes(String.java:576)
        at java.io.UnixFileSystem.canonicalize(Native Method)
        at java.io.File.getCanonicalPath(File.java:516)
        at java.io.FilePermission$1.run(FilePermission.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.FilePermission.init(FilePermission.java:206)
        at java.io.FilePermission.<init>(FilePermission.java:256)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:890)
        at java.io.File.isDirectory(File.java:701)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:68)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:151)
        at sun.applet.AppletClassLoader.resourceExists(AppletClassLoader.java:322)
        at sun.applet.AppletClassLoader.findResources(AppletClassLoader.java:338)
        at java.lang.ClassLoader.getResources(ClassLoader.java:786)
        at sun.misc.Service$LazyIterator.hasNext(Service.java:242)
        at java.nio.charset.Charset.lookup(Charset.java:301)
        at java.nio.charset.Charset.isSupported(Charset.java:324)
        at java.lang.StringCoding.lookupCharset(StringCoding.java:81)
        at java.lang.StringCoding.encode(StringCoding.java:353)
        at java.lang.StringCoding.encode(StringCoding.java:370)
        at java.lang.String.getBytes(String.java:576)
        at java.io.UnixFileSystem.canonicalize(Native Method)
        at java.io.File.getCanonicalPath(File.java:516)
        at java.io.FilePermission$1.run(FilePermission.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.FilePermission.init(FilePermission.java:206)
        at java.io.FilePermission.<init>(FilePermission.java:256)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:890)
        at java.io.File.isDirectory(File.java:701)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:68)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:151)
        at sun.applet.AppletClassLoader.resourceExists(AppletClassLoader.java:322)
        at sun.applet.AppletClassLoader.findResources(AppletClassLoader.java:338)
        at java.lang.ClassLoader.getResources(ClassLoader.java:786)
        at sun.misc.Service$LazyIterator.hasNext(Service.java:242)
        at java.nio.charset.Charset.lookup(Charset.java:301)
        at java.nio.charset.Charset.isSupported(Charset.java:324)
        at java.lang.StringCoding.lookupCharset(StringCoding.java:81)
        at java.lang.StringCoding.encode(StringCoding.java:353)
        at java.lang.StringCoding.encode(StringCoding.java:370)
        at java.lang.String.getBytes(String.java:576)
        at java.io.UnixFileSystem.canonicalize(Native Method)
        at java.io.File.getCanonicalPath(File.java:516)
        at java.io.FilePermission$1.run(FilePermission.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.FilePermission.init(FilePermission.java:206)
        at java.io.FilePermission.<init>(FilePermission.java:256)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:890)
        at java.io.File.isDirectory(File.java:701)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:68)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:151)
        at sun.applet.AppletClassLoader.resourceExists(AppletClassLoader.java:322)
        at sun.applet.AppletClassLoader.findResources(AppletClassLoader.java:338)
        at java.lang.ClassLoader.getResources(ClassLoader.java:786)
        at sun.misc.Service$LazyIterator.hasNext(Service.java:242)
        at java.nio.charset.Charset.lookup(Charset.java:301)
        at java.nio.charset.Charset.isSupported(Charset.java:324)
        at java.lang.StringCoding.lookupCharset(StringCoding.java:81)
        at java.lang.StringCoding.encode(StringCoding.java:353)
        at java.lang.StringCoding.encode(StringCoding.java:370)
        at java.lang.String.getBytes(String.java:576)
        at java.io.UnixFileSystem.canonicalize(Native Method)
        at java.io.File.getCanonicalPath(File.java:516)
        at java.io.FilePermission$1.run(FilePermission.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.FilePermission.init(FilePermission.java:206)
        at java.io.FilePermission.<init>(FilePermission.java:256)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:890)
        at java.io.File.isDirectory(File.java:701)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:68)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:151)
        at sun.applet.AppletClassLoader.resourceExists(AppletClassLoader.java:322)
        at sun.applet.AppletClassLoader.findResources(AppletClassLoader.java:338)
        at java.lang.ClassLoader.getResources(ClassLoader.java:786)
        at sun.misc.Service$LazyIterator.hasNext(Service.java:242)
        at java.nio.charset.Charset.lookup(Charset.java:301)
        at java.nio.charset.Charset.isSupported(Charset.java:324)
        at java.lang.StringCoding.lookupCharset(StringCoding.java:81)
        at java.lang.StringCoding.encode(StringCoding.java:353)
        at java.lang.StringCoding.encode(StringCoding.java:370)
        at java.lang.String.getBytes(String.java:576)
        at java.io.UnixFileSystem.canonicalize(Native Method)
        at java.io.File.getCanonicalPath(File.java:516)
        at java.io.FilePermission$1.run(FilePermission.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.FilePermission.init(FilePermission.java:206)
        at java.io.FilePermission.<init>(FilePermission.java:256)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:890)
        at java.io.File.isDirectory(File.java:701)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:68)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:151)
        at sun.applet.AppletClassLoader.resourceExists(AppletClassLoader.java:322)
        at sun.applet.AppletClassLoader.findResources(AppletClassLoader.java:338)
        at java.lang.ClassLoader.getResources(ClassLoader.java:786)
        at sun.misc.Service$LazyIterator.hasNext(Service.java:242)
        at java.nio.charset.Charset.lookup(Charset.java:301)
        at java.nio.charset.Charset.isSupported(Charset.java:324)
        at java.lang.StringCoding.lookupCharset(StringCoding.java:81)
        at java.lang.StringCoding.encode(StringCoding.java:353)
        at java.lang.StringCoding.encode(StringCoding.java:370)
        at java.lang.String.getBytes(String.java:576)
        at java.io.UnixFileSystem.canonicalize(Native Method)
        at java.io.File.getCanonicalPath(File.java:516)
        at java.io.FilePermission$1.run(FilePermission.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.FilePermission.init(FilePermission.java:206)
        at java.io.FilePermission.<init>(FilePermission.java:256)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:890)
        at java.io.File.isDirectory(File.java:701)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:68)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:151)
        at sun.applet.AppletClassLoader.resourceExists(AppletClassLoader.java:322)
        at sun.applet.AppletClassLoader.findResources(AppletClassLoader.java:338)
        at java.lang.ClassLoader.getResources(ClassLoader.java:786)
        at sun.misc.Service$LazyIterator.hasNext(Service.java:242)
        at java.nio.charset.Charset.lookup(Charset.java:301)
        at java.nio.charset.Charset.isSupported(Charset.java:324)
        at java.lang.StringCoding.lookupCharset(StringCoding.java:81)
        at java.lang.StringCoding.encode(StringCoding.java:353)
        at java.lang.StringCoding.encode(StringCoding.java:370)
        at java.lang.String.getBytes(String.java:576)


Comments
EVALUATION This bug is specific to build B82. I was not able to reproduce the problem with build B83 or build B81 ###@###.### 2001-10-11
11-10-2001