Strange behaviour of applet running under Opera

Discussion in 'Java' started by Trung Chinh Nguyen, Apr 29, 2006.

  1. Hello people,

    I was writing an applet for a challenge site and some people there
    reported that the applet displayed different results when run under
    Firefox and Opera. I wrote another one basing on the same applet for
    testing and the results were different again. I never thought Java was
    browser-dependent until now. I asked some of my friend to test it again
    and they experienced the same problem. So can you test it again and if
    possible have a look at the source code to see what the problem could be?

    Firefox Screenshot: http://chinhnt2k3.t35.com/strange/firefox.png
    Opera: http://chinhnt2k3.t35.com/strange/opera.png
    Test applet: http://chinhnt2k3.t35.com/strange/
    Source code:
    http://chinhnt2k3.t35.com/strange/http://chinhnt2k3.t35.com/strange/Strange.zip

    Regards,

    Chinh
    Trung Chinh Nguyen, Apr 29, 2006
    #1
    1. Advertising

  2. Trung Chinh Nguyen, Apr 29, 2006
    #2
    1. Advertising

  3. Trung Chinh Nguyen

    Daniel Dyer Guest

    On Sat, 29 Apr 2006 17:24:46 +0100, Trung Chinh Nguyen
    <> wrote:

    > Hello people,
    >
    > I was writing an applet for a challenge site and some people there
    > reported that the applet displayed different results when run under
    > Firefox and Opera. I wrote another one basing on the same applet for
    > testing and the results were different again. I never thought Java was
    > browser-dependent until now. I asked some of my friend to test it again
    > and they experienced the same problem. So can you test it again and if
    > possible have a look at the source code to see what the problem could be?


    I haven't looked at the source code, but it works fine for me using Opera
    9.0 beta on Mac OS X (i.e. the result is 'good', which I guess means the
    applet is working as required). Safari and Firefox also work, which is to
    be expected since all three browsers use the same JVM plugin (JavaSE
    5.0). The Opera 9.0 beta also works for me on Windows XP.

    Dan.

    --
    Daniel Dyer
    http://www.dandyer.co.uk
    Daniel Dyer, Apr 29, 2006
    #3
  4. Trung Chinh Nguyen

    Chris Uppal Guest

    Trung Chinh Nguyen wrote:

    > I was writing an applet for a challenge site and some people there
    > reported that the applet displayed different results when run under
    > Firefox and Opera. I wrote another one basing on the same applet for
    > testing and the results were different again.


    That was a very good test that you put together. Sadly, despite that, I can't
    tell you what's going wrong for sure, but I can fill in some of the details,
    which may help you to find out more.

    The problem seems to be to do with the fact that Opera uses its own Java
    plug-in implementation, whereas Firefox uses the plug-in from Sun. In both
    cases, they use the same underlying JVM implementation (1.5.0_o6-b05 on my
    machine), but I assume that Opera /uses/ that JVM in a significantly different
    way (different security manager and so on).

    In particular it uses its own subclass of java.net.HttpUrlConnection whereas it
    the Sun plug-in uses the implementation class
    sun.net.www.protocol.http.HttpUrlConnection (which is a subclass of
    java.net.HttpUrlConnection which is private to Sun). You can verify that by
    adding a call to dumpStatus(conn); to your connect() method, where that is
    defined as:

    =============
    private void
    dumpStatus(URLConnection conn)
    {
    StringBuilder b = new StringBuilder();
    b.append("<html><br>");
    b.append(conn);
    Class c = conn.getClass();
    while (c != null)
    {
    b.append("<br>class: ");
    b.append(c);
    c = c.getSuperclass();
    }
    b.append("</html>");
    JOptionPane.showMessageDialog(
    null,
    b.toString(),
    "Connection",
    JOptionPane.INFORMATION_MESSAGE);
    }

    =============

    If you capture the network traffic (use Ethereal or similar) then you'll see
    that when Firefox runs the applet the request for the PHP page looks like (with
    some irrelevant stuff removed):
    =============
    GET /strange/test.php HTTP/1.1
    test: test
    User-Agent: Mozilla/4.0 (Windows XP 5.1) Java/1.5.0_06
    Host: chinhnt2k3.t35.com

    =============

    But when you do the same thing with Opera 8.52 (I used a completely brand new
    installation of Opera -- the very first URL if ever downloaded on this machine
    was your test !) you see something like:
    =============
    GET /strange/test.php HTTP/1.1
    User-Agent: Opera/8.52 (Windows NT 5.1; U; en)
    Host: chinhnt2k3.t35.com

    =============

    So your custom
    test: test
    header isn't being added to the request. I believe that the Opera
    implementation of HttpUrlConnection is broken in that it doesn't honour
    setRequestProperty(). It looks as if the only property it allows you to set is
    "Content-length", all other requests being ignored /silently/. It also does
    not respect the behaviour of the superclass implementation which throws an
    exception if you try to use setRequestProperty() after the connection has been
    connect()-ed.

    (If that's typical of Opera coding standards in general then I doubt whether
    Opera is going to stay installed on my machine for very long -- I've been
    meaning to try it out for a while, but this is a very bad introduction...)

    -- chris
    Chris Uppal, Apr 30, 2006
    #4
  5. Chris Uppal wrote:
    > But when you do the same thing with Opera 8.52 (I used a completely brand new
    > installation of Opera -- the very first URL if ever downloaded on this machine
    > was your test !) you see something like:
    > =============
    > GET /strange/test.php HTTP/1.1
    > User-Agent: Opera/8.52 (Windows NT 5.1; U; en)
    > Host: chinhnt2k3.t35.com
    >
    > =============
    >

    The current Opera version is 8.54 - it might be worth checking that.

    For that matter Opera 9 is now in beta - haven't tried it myself, but
    the comments are generally favorable.


    --
    martin@ | Martin Gregorie
    gregorie. | Essex, UK
    org |
    Martin Gregorie, Apr 30, 2006
    #5
  6. lol, it's been exactly 3 months since the last post, but thanks for your
    very detailed explanation (if you ever read this topic again :D)
    Trung Chinh Nguyen, Jul 30, 2006
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Chris Berg
    Replies:
    2
    Views:
    469
    Chris Berg
    Oct 31, 2005
  2. Anna
    Replies:
    2
    Views:
    629
    Toby A Inkster
    Jan 22, 2004
  3. Bob
    Replies:
    24
    Views:
    1,541
  4. Lukasz
    Replies:
    10
    Views:
    758
    Andrew Thompson
    Aug 11, 2006
  5. Qu0ll
    Replies:
    28
    Views:
    743
    Qu0ll
    Nov 15, 2007
Loading...

Share This Page