View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001261 | AniDB Applet | Bug Report | public | 2008-09-05 18:20 | 2014-05-01 20:51 |
Reporter | spider0042 | Assigned To | DvdKhl | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | feedback | Resolution | open | ||
Platform | Firefox/2.0.0.16 - JRE 1.5.0_06 | OS | Windows XP 32bit | OS Version | 5.1 |
Summary | 0001261: Applet - JDK/JVM Version Check Skipped - Exceptions Thrown due to old JVM and new bytecode | ||||
Description | http://anidb.net/perl-bin/animedb.pl?show=applet Old software is old. (And surprise! Not supported...) ^_^; In the case of my old machine, the 'Applet' continues to execute, and throws a runtime Exception, resulting in a white box with 'the red x' (firefox), and lacks any form of an informative 'your shit is old' message. It might be convenient to catch the Exception, or add aditional version checking so that user can be informed that an upgrade is needed. Quick Note: This is likely a 'problem' which can be left alone, but fixing it might help avoid bit of confusion and possibly reduce false error reports. I just thought that it might be useful to note a case which has slipped by the initial version checking. =============================== [b][ Details ][/b] An older JVM will throw an [i]UnsupportedClassVersionError[/i] if a class has been compiled with a (newer) JDK - a JDK which has returned bytecode that has been flagged with a 'lowest supported/compatible JVM version'. [b]This box is running old software![/b] Firefox 2.0 and JRE 1.5.0 (Java blocking features are not enabled.) The time has come for 'The Great Exodus' of an old machine; as I am attempting to migrate everything on it to NAS and final backup media. (This 'frankenstein' of a machine has been hobbling along with WinXP Service Pack 1 ... and a half. :/ ) [ Fix/Request ] Catch the Exception, or add additional checks at runtime, so that the user can be provided the most graceful: 'upgrade your shitz' message. :D I am not familiar with Java's version checking, but there may be another way to specify the lowest supported 'JVM-JDK combo' at compile time? Or, it could be that these versions of Java and Firefox do not support any extra features which would help catch this issue without additional coding. If you happen to be using newer APIs, then backwards compatible bytecode isn't an option, but it might be a 'quick fix' if the Applet is indeed using compatible API's. [b]If the proper fix isn't simple, then no one should really need to worry about this 'feature' request.[/b] As was stated, 'old software is old'. The -current- issue should 'fix itself' as stragglers slowly update because they realize other sites are starting to require newer versions. If not, fell free to say 'screw you' >:D , because people should honestly be running newer software. | ||||
Steps To Reproduce | [b]Old Machine - Problem Described above:[/b] Firefox/2.0.0.16 JRE 1.5.0_06 (build 1.5.0_06-b05) WinXP SP1 + 1/2 :/ Just attempt to load the applet at http://anidb.net/perl-bin/animedb.pl?show=applet [b]Another machine - which works, NO problems:[/b] Firefox/3.0.1 and specifically Java 1.6.0_05-b13 WinXP SP2 [b]Briefly tested the Applet under a 64bit Linux environment:[/b] Results in a blank box / no Applet. Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1 Firefox is using the gcj webplugin ver. 1.2 I will look further into compatibility and report any useful findings. | ||||
Additional Information | I'm in no need to upgrade this machine, I'm willing to wait and preform any additional testing if it's so desired. I could always install Minefield, or some newer beta, which might leave the original install intact, and allow for further testing. If this won't need to be looked into, before I do whipe this machine, I'll upgrade Firefox, and run some tests, then upgrade java, and play around with it a bit. Original Machine's Debug Info: =================================== Java Plug-in 1.5.0_06 Using JRE version 1.5.0_06 Java HotSpot(TM) Client VM User home directory = C:\Documents and Settings\OldUser java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at sun.applet.AppletClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at sun.applet.AppletClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exception in thread "Thread-10" java.lang.NullPointerException at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source) at sun.plugin.AppletViewer.showAppletException(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.NullPointerException at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source) at sun.plugin.AppletViewer.showAppletStatus(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) [b]Additional System Environment Information can be found in the attached document.[/b] --------------------- This may not be the only issue, but heres a bit of info just in case someone wants random details. "A Java virtual machine implementation can support a class file format of version v if and only if v lies in some contiguous range Mi.0 v Mj.m. Only Sun can specify what range of versions a Java virtual machine implementation conforming to a certain release level of the Java platform may support" -_-' Other rather detailed notes in the specification here: http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#9766 Catching the exception is probably enough, but heres a bit of overkill to be informative: http://www.rgagnon.com/javadetails/java-0544.html Could be used for testing: http://www.rgagnon.com/javadetails/java-0544.html | ||||
Tags | No tags attached. | ||||
2008-09-05 18:20
|
AniDB_Client_Applet_Crash_-_Old_Software.txt (12,343 bytes)
Java Plug-in 1.5.0_06 Using JRE version 1.5.0_06 Java HotSpot(TM) Client VM User home directory = C:\Documents and Settings\OldUser java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at sun.applet.AppletClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at sun.applet.AppletClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exception in thread "Thread-10" java.lang.NullPointerException at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source) at sun.plugin.AppletViewer.showAppletException(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.NullPointerException at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source) at sun.plugin.AppletViewer.showAppletStatus(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Dump system properties ... ---------------------------------------------------- acl.read = + acl.read.default = acl.write = + acl.write.default = application.home = C:\PROGRA~1\Java\JRE15~1.0_0 awt.toolkit = sun.awt.windows.WToolkit browser = sun.plugin browser.vendor = Sun Microsystems, Inc. browser.version = 1.1 file.encoding = Cp1252 file.encoding.pkg = sun.io file.separator = \ file.separator.applet = true http.agent = Mozilla/4.0 (Windows XP 5.1) http.auth.serializeRequests = true https.protocols = SSLv3,SSLv2Hello java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment java.awt.printerjob = sun.awt.windows.WPrinterJob java.class.path = C:\PROGRA~1\Java\JRE15~1.0_0\classes java.class.version = 49.0 java.class.version.applet = true java.endorsed.dirs = C:\PROGRA~1\Java\JRE15~1.0_0\lib\endorsed java.ext.dirs = C:\PROGRA~1\Java\JRE15~1.0_0\lib\ext java.home = C:\PROGRA~1\Java\JRE15~1.0_0 java.io.tmpdir = C:\DOCUME~1\OldUser\LOCALS~1\Temp\ java.library.path = C:\Program Files\Mozilla Firefox;.;C:\WINDOWS\System32;C:\WINDOWS;C:\Program Files\Mozilla Firefox;c:\ruby\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;c:\program files\sonic\mydvd;c:\program files\quicktime\qtsystem\;c:\program files\ati technologies\ati.ace\core-static;C:\Program Files\Intel\DMIX;C:\Sun\AppServer\bin;C:\PROGRA~1\F-Secure\Ssh;C:\Program Files\MKVtoolnix java.protocol.handler.pkgs = sun.plugin.net.protocol|sun.plugin.net.protocol|com.sun.deploy.net.protocol java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition java.runtime.version = 1.5.0_06-b05 java.specification.name = Java Platform API Specification java.specification.vendor = Sun Microsystems Inc. java.specification.version = 1.5 java.vendor = Sun Microsystems Inc. java.vendor.applet = true java.vendor.url = http://java.sun.com/ java.vendor.url.applet = true java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi java.version = 1.5.0_06 java.version.applet = true java.vm.info = mixed mode java.vm.name = Java HotSpot(TM) Client VM java.vm.specification.name = Java Virtual Machine Specification java.vm.specification.vendor = Sun Microsystems Inc. java.vm.specification.version = 1.0 java.vm.vendor = Sun Microsystems Inc. java.vm.version = 1.5.0_06-b05 javaplugin.maxHeapSize = 96m javaplugin.nodotversion = 150_06 javaplugin.proxy.config.list = javaplugin.proxy.config.type = browser javaplugin.version = 1.5.0_06 javaplugin.vm.options = -Djava.class.path=C:\PROGRA~1\Java\JRE15~1.0_0\classes -Xbootclasspath/a:C:\PROGRA~1\Java\JRE15~1.0_0\lib\deploy.jar;C:\PROGRA~1\Java\JRE15~1.0_0\lib\plugin.jar -Xmx96m -Djavaplugin.maxHeapSize=96m -Xverify:remote -Djavaplugin.version=1.5.0_06 -Djavaplugin.nodotversion=150_06 -Dbrowser=sun.plugin -DtrustProxy=true -Dapplication.home=C:\PROGRA~1\Java\JRE15~1.0_0 -Djava.protocol.handler.pkgs=sun.plugin.net.protocol line.separator = \r\n line.separator.applet = true os.arch = x86 os.arch.applet = true os.name = Windows XP os.name.applet = true os.version = 5.1 os.version.applet = true package.restrict.access.com.sun.deploy = true package.restrict.access.netscape = false package.restrict.access.org.mozilla.jss = true package.restrict.access.sun = true package.restrict.definition.com.sun.deploy = true package.restrict.definition.java = true package.restrict.definition.netscape = true package.restrict.definition.org.mozilla.jss = true package.restrict.definition.sun = true path.separator = ; path.separator.applet = true sun.arch.data.model = 32 sun.boot.class.path = C:\PROGRA~1\Java\JRE15~1.0_0\lib\rt.jar;C:\PROGRA~1\Java\JRE15~1.0_0\lib\i18n.jar;C:\PROGRA~1\Java\JRE15~1.0_0\lib\sunrsasign.jar;C:\PROGRA~1\Java\JRE15~1.0_0\lib\jsse.jar;C:\PROGRA~1\Java\JRE15~1.0_0\lib\jce.jar;C:\PROGRA~1\Java\JRE15~1.0_0\lib\charsets.jar;C:\PROGRA~1\Java\JRE15~1.0_0\classes;C:\PROGRA~1\Java\JRE15~1.0_0\lib\deploy.jar;C:\PROGRA~1\Java\JRE15~1.0_0\lib\plugin.jar sun.boot.library.path = C:\PROGRA~1\Java\JRE15~1.0_0\bin sun.cpu.endian = little sun.cpu.isalist = sun.desktop = windows sun.io.unicode.encoding = UnicodeLittle sun.jnu.encoding = MS932 sun.management.compiler = HotSpot Client Compiler sun.net.client.defaultConnectTimeout = 120000 sun.net.http.errorstream.enableBuffering = true sun.os.patch.level = Service Pack 1 trustProxy = true user.country = US user.dir = C:\Program Files\Mozilla Firefox user.home = C:\Documents and Settings\OldUser user.language = en user.name = OldUser user.timezone = user.variant = ---------------------------------------------------- Dump deployment properties ... ---------------------------------------------------- deployment.browser.args = -raise -remote openURL(%u,new-window) deployment.browser.path = C:\PROGRA~1\MOZILL~1\FIREFOX.EXE deployment.cache.jarcompression = 0 deployment.cache.max.size = -1 deployment.capture.mime.types = true deployment.console.startup.mode = HIDE deployment.control.panel.log = false deployment.home.j2se.url = http://java.sun.com/j2se/ deployment.javapi.cache.enabled = true deployment.javapi.lifecycle.exception = false deployment.javapi.log.filename = deployment.javapi.runtime.type = 0 deployment.javapi.trace.filename = deployment.javaws.associations = ASK_USER deployment.javaws.autodownload = ALWAYS deployment.javaws.cache.dir = C:\Documents and Settings\OldUser\.javaws\cache deployment.javaws.cachedir = C:\Documents and Settings\OldUser\.javaws\cache deployment.javaws.home.jnlp.url = http://java.sun.com/products/javawebstart deployment.javaws.installURL = http://java.sun.com/products/autodl/j2se deployment.javaws.logFileName = deployment.javaws.muffin.max = 256 deployment.javaws.player.bounds = 113,223,400,387 deployment.javaws.player.manager = 0 deployment.javaws.player.mode = 1 deployment.javaws.shortcut = ASK_IF_HINTED deployment.javaws.ssv.enabled = true deployment.javaws.traceFileName = deployment.javaws.uninstall.shortcut = false deployment.javaws.update.timeout = 1500 deployment.javaws.version = javaws-1.4.2_04 deployment.log = false deployment.mime.types.use.default = true deployment.proxy.bypass.local = false deployment.proxy.override.hosts = deployment.proxy.same = false deployment.proxy.type = 3 deployment.repository.askdownloaddialog.show = true deployment.repository.enabled = true deployment.security.SSLv2Hello = true deployment.security.SSLv3 = true deployment.security.TLSv1 = false deployment.security.askgrantdialog.notinca = true deployment.security.askgrantdialog.show = true deployment.security.authenticator = true deployment.security.browser.keystore.use = true deployment.security.clientauth.keystore.auto = true deployment.security.expired.warning = true deployment.security.jsse.hostmismatch.warning = true deployment.security.notinca.warning = true deployment.security.sandbox.awtwarningwindow = true deployment.security.sandbox.jnlp.enhanced = true deployment.security.trusted.policy = deployment.system.security.cacerts = C:\PROGRA~1\Java\JRE15~1.0_0\lib\security\cacerts deployment.system.security.jssecacerts = C:\PROGRA~1\Java\JRE15~1.0_0\lib\security\jssecacerts deployment.system.security.trusted.certs = C:\PROGRA~1\Java\JRE15~1.0_0\lib\security\trusted.certs deployment.system.security.trusted.clientauthcerts = C:\PROGRA~1\Java\JRE15~1.0_0\lib\security\trusted.clientcerts deployment.system.security.trusted.jssecerts = C:\PROGRA~1\Java\JRE15~1.0_0\lib\security\trusted.jssecerts deployment.trace = false deployment.update.mime.types = true deployment.user.cachedir = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\cache deployment.user.extdir = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\ext deployment.user.logdir = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\log deployment.user.security.policy = file://C:/Documents%20and%20Settings/OldUser/Application%20Data/Sun/Java/Deployment/security/java.policy deployment.user.security.trusted.cacerts = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\security\trusted.cacerts deployment.user.security.trusted.certs = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\security\trusted.certs deployment.user.security.trusted.clientauthcerts = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\security\trusted.clientcerts deployment.user.security.trusted.jssecacerts = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\security\trusted.jssecacerts deployment.user.security.trusted.jssecerts = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\security\trusted.jssecerts deployment.user.tmp = C:\Documents and Settings\OldUser\Application Data\Sun\Java\Deployment\tmp deployment.version = 1.5.0 javaplugin.console = hide javaplugin.exception = false javaplugin.jre.path = Default javaplugin.jre.type = Default javaplugin.proxy.usebrowsersettings = true ---------------------------------------------------- Done. Dump classloader list ... codebase=http://anidb.net/perl-bin/, key=http://anidb.net/perl-bin/,http://static.anidb.net/files/AniAdd.jar, zombie=false, cache=true, refcount=1, info=sun.plugin.ClassLoaderInfo@73a34b Done. ------------------------------------------------------------------------------------------------------ |
|
IE 6 on the original (old) machine detects and reports properly: "There should be a Java applet here. Please install Sun JRE 1.6 or later and/or disable whatever retarded Java blocking extension you're running." Could be old Firefox 2.0, I'll install a beta and see if it still has issues (even with the old JVM). |
|
Um, yes, I discovered incompatibilities with 1.5 while testing and added the version info to the applet and tested that I got that message when I ran firefox (2.0.x like you) with JRE 1.5. I don't know why it's silently failing for you instead. |
|
(New Version) Are there still browser - Java runtime combinations that don't work? And if it doesn't work, is a message properly displayed? |
|
I currently have the flu, but I do still have a copy of the old machine that was mentioned in this ticket. I'll try to test it out and provide feedback by the end of the week. |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-09-05 18:20 | spider0042 | New Issue | |
2008-09-05 18:20 | spider0042 | File Added: AniDB_Client_Applet_Crash_-_Old_Software.txt | |
2008-09-05 18:28 | spider0042 | Note Added: 0002324 | |
2008-10-01 12:57 | pelican | Note Added: 0002340 | |
2009-09-14 18:51 | DvdKhl | Status | new => assigned |
2009-09-14 18:51 | DvdKhl | Assigned To | => DvdKhl |
2009-09-14 18:59 | DvdKhl | Note Added: 0002990 | |
2009-09-14 18:59 | DvdKhl | Status | assigned => feedback |
2009-09-14 20:45 | spider0042 | Note Added: 0002991 | |
2014-05-01 20:51 | DerIdiot | Category | => Bug Report |