Bug 351381

Summary: applet bytecode verification errors
Product: [Fedora] Fedora Reporter: Thomas Fitzsimmons <fitzsim>
Component: java-1.6.0-openjdkAssignee: Andrew Haley <aph>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 9CC: aph, esteban.xandri, langel, michal, mjw, patrickm, scottt.tw
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-11-18 15:23:32 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
image from a working applet none

Description Thomas Fitzsimmons 2007-10-24 21:27:14 UTC
+++ This bug was initially created as a clone of Bug #333721 +++

[pruned unrelated comment]

-- Additional comment from michal on 2007-10-24 16:57 EST --
Here is more applets which end up with "Start: applet not initialized".
Those on the following pages:
http://www.colorado.edu/physics/2000/xray/making_xrays.html
http://www.colorado.edu/physics/2000/tomography/x_rays.html
http://www.colorado.edu/physics/2000/tomography/final_rib_cage.html
http://www.colorado.edu/physics/2000/tomography/auto_rig_cage.html

Various applets from http://www.colorado.edu/physics/2000/ do work
although I do not know if the list above cannot be extended if one
would try all of them (and a pretty extensive collection is available
at that location).  With java plugin from Sun all the above are fine.

This was checked with
java-1.7.0-icedtea-plugin-1.7.0.0-0.19.b21.snapshot.fc8.x86_64


-- Additional comment from michal on 2007-10-24 16:59 EST --
Oops!  Read http://www.colorado.edu/physics/2000/tomography/auto_rib_cage.html
instead of "auto_rig..."

-- Additional comment from fitzsim on 2007-10-24 17:19 EST --

[pruned]

Comment 1 Lillian Angel 2007-11-02 14:46:34 UTC
I cant seem to get these applets working with any java plugins from Sun (1.5,
1.6 and 1.7). What version did you use?



Comment 2 Lillian Angel 2007-11-02 15:19:55 UTC
Also, this seems to fail with OpenJDK. I don't believe it is an
IcedTea/gcjwebplugin bug. Changing status to "NEED INFO"

Comment 3 Michal Jaegermann 2007-11-02 18:36:25 UTC
Created attachment 246941 [details]
image from a working applet

> I cant seem to get these applets working with any java plugins from Sun

That is somewhat strange.  Although indeed the first one on that list
appears to develop some troubles (probably it got "fixed" in the
meantime as it worked when I tried it in time of the report) the other
three work for me just fine.  I attach a screenshot of a relevant screen
fragment from firefox on F7 running the fourth one, i.e. "auto_rib_cage",
on that list.  I also tried with CentOS4 installation with firefox
and galeon.  Every time this worked.  When starting this example I see

Applet tomography/Tomography started

at a status line at the bottom of a browser and everything looks
like expected.

In all tests above I used a plugin from Sun java 1.6.0.3.
Those applets also used to work for me with earlier Sun versions
but I do not have that on hands anymore.

Just to be sure I rechecked the current situtation using
java-1.7.0-icedtea-plugin-1.7.0.0-0.19.b21.snapshot.fc8,
in case something changed in applets, and they still none of
these works.

Comment 4 Lillian Angel 2007-11-02 18:42:03 UTC
Looking into it. Thanks for the info.

Comment 5 Michal Jaegermann 2007-11-02 19:36:21 UTC
There is this
http://www.colorado.edu/physics/2000/applets_EL.html
URL with a "visual" index of assorted applets.  In particular
all those referenced in the original report are present there.
(Due to an extensive use of frames and javascript it is hard to
give a reference to nearly anything on that site :-( ).

Comment 6 Lillian Angel 2007-11-05 19:25:22 UTC
Have you tried these applets with Sun's appletviewer? I just tested them with
1.5.0 and they do not work. I am curious if they only work with Sun's Java Plugin:

applet]$ ./jdk1.5.0_13/bin/appletviewer
http://www.colorado.edu/physics/2000/tomography/final_rib_cage.htmljava.lang.ClassFormatError:
Invalid start_pc 65535 in LocalVariableTable in class file tomography/Figure
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:163)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:119)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at
tomography.Tomography.init(C:\Msdev\projects\tomography\Tomography.java:29)
        at sun.applet.AppletPanel.run(AppletPanel.java:380)
        at java.lang.Thread.run(Thread.java:595)

applet]$ ./jdk1.5.0_13/bin/appletviewer
http://www.colorado.edu/physics/2000/xray/making_xrays.html
java.lang.VerifyError: (class: bohr/TungstenAtom, method: detectCollisions
signature: ()V) Illegal use of nonvirtual function call
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
        at java.lang.Class.getConstructor0(Class.java:2671)
        at java.lang.Class.newInstance0(Class.java:321)
        at java.lang.Class.newInstance(Class.java:303)
        at sun.applet.AppletPanel.createApplet(AppletPanel.java:723)
        at sun.applet.AppletPanel.runLoader(AppletPanel.java:652)
        at sun.applet.AppletPanel.run(AppletPanel.java:326)
        at java.lang.Thread.run(Thread.java:595)




Comment 7 Michal Jaegermann 2007-11-05 20:26:56 UTC
> Have you tried these applets with Sun's appletviewer?

I did not have appletviewer even installed until now. :-)
(I used, more or less, nosrc.rpm from http://www.jpackage.org/
to repackage Sun stuff as a series of rpms and I did not bother
with installing java-1.6.0-sun-devel before you asked).

> I am curious if they only work with Sun's Java Plugin

That looks like the case.  I am seeing exactly the same spillage
in appletviewer from java-1.6.0-sun-1.6.0.3 like you quote in
comment #6.  No idea how those thing work with plugins.

That is clearly developed under Windows:
"...init(C:\Msdev\projects\tomography\Tomography.java:29)".
Maybe java there is much more lax?  The same
"... Invalid start_pc 65535 in LocalVariableTable ..." error
shows up with two other URLs from the original report too.
Not that surprising as the same class file is in use.

Hm, apparently a contact address is p2000.edu
Could you bug those guys?  I am very naive when it comes to Java.

Comment 8 Lillian Angel 2007-11-15 17:43:31 UTC
It seems as though Sun's plugin has a bytecode transformer which converts
erronous class files to something usable.

IcedTea's plugin does not have this at the moment. 

Comment 9 Bug Zapper 2008-05-14 03:43:26 UTC
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 10 Red Hat Bugzilla 2008-07-25 01:04:04 UTC
Adding patrickm to the cc list as the manager of the disabled user fitzsim who reported this bug

Comment 11 Andrew Haley 2008-11-18 15:23:32 UTC
I'm closing this: the class files are not valid, and there's nothing in the VM spec that says we should not reject them.  In fact, the VM spec says we should.

Comment 12 Michal Jaegermann 2008-11-18 17:31:04 UTC
> the class files are not valid ...

By this token it would be impossible to boot most of "PC class" machines as BIOSes are usually horribly broken if you follow specs.  OTOH at lest with a plugin from java-1.6.0-sun-1.6.0.10 on an applet from http://www.colorado.edu/physics/2000/xray/making_xrays.html I am getting an error and "details" show:

java.lang.VerifyError: (class: bohr/TungstenAtom, method: detectCollisions signature: ()V) Illegal use of nonvirtual function call
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
	at java.lang.Class.getConstructor0(Class.java:2699)
	at java.lang.Class.newInstance0(Class.java:326)
	at java.lang.Class.newInstance(Class.java:308)
	at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
	at sun.plugin.AppletViewer.createApplet(AppletViewer.java:2302)
	at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
	at sun.applet.AppletPanel.run(AppletPanel.java:368)
	at java.lang.Thread.run(Thread.java:619)

If there is some hope that this will get fixed?  Chances seem to be slim as this used to "work" before.  OTOH it is easy to collect quickly an impressive collection of complaints from various applets on http://www.colorado.edu/physics/2000/ site even if they do show something.

As I suggested before - if somebody who knows first things about Java, and that is not me, would contact p2000.edu that would likely be good.

Comment 13 Andrew Haley 2008-11-18 17:49:59 UTC
> If there is some hope that this will get fixed?

Unlikely.  It should just be a matter of recompiling the applets with
a javac that is not broken.  Surely eventually UColorado will simply
do the Right Thing and recompile the applets.

Comment 14 Michal Jaegermann 2008-11-18 18:25:06 UTC
The question about "hope" (s/If/Is/) was really about a preceding trace and not java distributed with Fedora.  I also think "unlikely", at least without some prodding, contrary to the opinion expressed in the last sentence of the previous comment. :-)

Some of these "out-of-specs" applets still work, more or less, with java-1.6.0-sun-plugin-1.6.0.10 so an incentive to fix them does not look so great.