Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > Strange behaviour of applet running under Opera

Reply
Thread Tools

Strange behaviour of applet running under Opera

 
 
Trung Chinh Nguyen
Guest
Posts: n/a
 
      04-29-2006
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/ht...ge/Strange.zip

Regards,

Chinh
 
Reply With Quote
 
 
 
 
Trung Chinh Nguyen
Guest
Posts: n/a
 
      04-29-2006
The link to the source code is:
http://chinhnt2k3.t35.com/strange/Strange.zip
Copy/paste mistake ><
 
Reply With Quote
 
 
 
 
Daniel Dyer
Guest
Posts: n/a
 
      04-29-2006
On Sat, 29 Apr 2006 17:24:46 +0100, Trung Chinh Nguyen
<(E-Mail Removed)> 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
 
Reply With Quote
 
Chris Uppal
Guest
Posts: n/a
 
      04-30-2006
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


 
Reply With Quote
 
Martin Gregorie
Guest
Posts: n/a
 
      04-30-2006
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 |
 
Reply With Quote
 
Trung Chinh Nguyen
Guest
Posts: n/a
 
      07-30-2006
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 )
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Strange applet behaviour on Windows XP Qu0ll Java 28 11-15-2007 08:14 PM
EasyInstall under Windows - strange behaviour Norbert Python 2 12-01-2006 07:30 AM
Signed applet strange behaviour Lukasz Java 10 08-11-2006 11:47 AM
Strange behaviour of Applet.getImage(URL) Chris Berg Java 2 10-31-2005 11:03 PM
strange behaviour of IFRAME under XHTML_Transitional in IE Anna HTML 2 01-22-2004 07:32 AM



Advertisments