Future Computing Environments

Java Bug That Affects CyberDesk

The bug in Netscape's Java Virtual Machine in Navigator 3.x is best explained by a series of 3 usenet postings:
  1. Subject:      Netscape 3.01 CLASS VERIFIER BUG
    From:         Anatoli Krassavine <kras@nmr1.ioc.ac.ru>
    Date:         1997/01/17
    Message-Id:   <32DFC60F.167E@nmr1.ioc.ac.ru>
    Newsgroups:   comp.lang.java.programmer
    [More Headers]
    
    Hi everyone,
    
      I experienced strange problems with running my applets on Netscape
    3.01. Has anybody experienced the same? Any work-around? Ok, below is
    small description:
    ^^^^^^^^^^^^^^^^^
    
    HTML page contains 2 different independent applets. Although applets are
    different they are inherited from the same applet class, written by me,
    i.e.
    
                 CommonInterfaceApplet
                   /              \
                  /                \
               Applet1           Applet2
    
    Ok, on all the previous versions of Netscape the system downloads both
    applets correctly, runs them, etc.
    
    But with Netscape 3.01 I have the following error message
    
    VERIFIER CLASS ERROR Applet2:
    Class Applet2 overrides final method init.()V
    VERIFIER CLASS ..........
    
    ..........................
    
    and so on - the same for a dozen different methods in Applet2
    
    ...........................
    
    finally I have
    # Applet exception: class Applet2 got a security violation: method
    verification error
    
    Naturally Applet2 stop, although Applet1 runs fine.
    Sometimes the message referes to Applet1, but usually Applet2 - probably
    it is initialized second, since it is much bigger then Applet1
    
    
    NOW THE INTERESTING PART:
    
    If I put just one of this applets on the page - either of them - it will
    run fine!!!
    
    It looks like the Java virtual machine downloads the classes for Applet1
    and starts to initialize them. When machine starts to download classes
    for Applet2 - something clashes - naturally both applets contain certain
    methods which are overwritten from CommonInterfaceApplet.
    
      As I said, I never experienced anything like that in previous
    versions.
      Any help?
    
    JUST some answers to obvious questions:
    1) All the classes are downloaded from the same directory on the same
    site
    2) No ZIPping is used
    
                                              Sincerely yours,
                                                  Toly
    
    kras@nmr1.ioc.ac.ru       
    

  2. Subject:      Re: security violation: method verification error
    From:         David Hopwood <hopwood@zetnet.co.uk>
    Date:         1997/05/20
    Message-Id:   <1997052001301674952@zetnet.co.uk>
    Newsgroups:   comp.lang.java.security
    [More Headers]
    
    In message <337CCC92.6AF0@hbp.com>
            Don Rude <donr@hbp.com> writes: 
    
    > The Java Console output of Netscape(3.01) follows:
    
    > > AppAccelerator(tm) 1.0.2a for Java, x86 version.
    > > Copyright (c) 1996 Borland International. All Rights Reserved.
    > > VERIFIER ERROR p6.action(Ljava/awt/Event;Ljava/lang/Object;)Z: 
    Expecting to find object on stack
    
    If I remember correctly this bug was fixed in 4.0 (and maybe 3.02?). To work
    around it in previous versions, avoid casting from an array type to another
    type.
    
    David Hopwood
    david.hopwood@lmh.ox.ac.uk, hopwood@zetnet.co.uk
    

  3. Subject:      Re: Problem running Java applets in Navigator 3.01
    From:         Jay Guidos <jayman@cadvision.com>
    Date:         1996/12/06
    Message-Id:   <32A84A81.683B@cadvision.com>
    Newsgroups:   comp.lang.java.programmer
    [More Headers]
    
    Vinh D. Nguyen wrote:
    > 
    > I wrote an applet in Visual J++ and it ran fine in IE 3.0. However, when I
    > tried to run the same applet in Navigator 3.01, I kept getting a method
    > verification error. I realize from reading the postings in this news group
    > that several others have had the same problem; however, no answer was ever
    > offered! Please help!
    > 
    > Vinh
    
    Hi Vinh,
    
      I have had this problem many times.  Others have noted here
    and elsewhere that Netscape has acknowledged problems with the 
    verifier on NS3.1 that generates these kinds of problems, but
    I am not aware of any FAQ or bug report that details this.
    
    Let me tell you how I beat Verifier errors when they happen to me.
     
    1) delete all your .class files, remove all debug options from
       your compile setup, and re-compile ALL classes together.
    
    Although many times that is sufficient, you may also have problems
    with accessing static class methods (the JVM throws exceptions when
    accessing perfectly valid references to a static method of a particular
    class).  The only solution to that one I have found is to :
    
    2) make some small change in the method of the static class that
       NS3.1 hates.  Ensure that the change will result in a 
       different set of byte codes!  Recompile.  
    
    Good luck,
    
    Jay
    
    
    -- 
    
    Jay Guidos
    
    mailto:jayman@cadvision.com                 I&J Scientific Software Ltd
    http://wndx.com/wndx/gaia/gaia.html         Calgary, AB, Canada
    


    Return to the CyberDesk home page.


    Future Computing Environments Georgia Institute of Technology