Closed Bug 15779 Opened 20 years ago Closed 20 years ago

[PP]Applets are not displaying in browser window.

Categories

(Core Graveyard :: Java: OJI, defect, P3, major)

PowerPC
Mac System 8.6

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: chrispetersen, Assigned: edburns)

References

()

Details

Build: Apprunner
Version:1999100617 Mozilla M10
Platforms: Mac
Other Platforms: Window 95, need to test linux.
Expected Results:

The applet should be displayed in the browser window.

What I got:

On Mac 8.6, the applet never appears in the window.

On Windows 95, a grey rectangle appears the disapperas. The applet is not
displayed.

Steps to reproduce:

1) In the Advance section of Preferences, turn on enable Java.
2) Load the following testcase: http://slip/projects/marvin/html/
applet_hspace.html.
3) The applet is not displayed in the browser window.
4) This same test case loads correctly in Nav 4.7 on both platforms.
I can't reproduce this bug because I'm outside of the Netscape firewall.  Can
you either attach the sample HTML, or include a different outside-of-Netscape
URL that we can also get to from Sun, that would produce the same problem?
Thanks in advance.
Sure. Here is url that uses a applet to apply a transition effect to image.
www.javapplets.com/special/Curtain.htm. The applet never loads in apprunner but
works fine in Nav 4.7. I have the java plug installed and turned on Java support
in Apprunner's Preference dialog.
Assignee: drapeau → edburns
Re-assigning to Ed Burns, copying Mark Lin on it.  You two can decide whether I
assigned correctly, or if the other should own it.
Status: NEW → ASSIGNED
I get the following java error.

I think this bug is being masked by a SOCKS bug.

InstantiateEmbededPlugin for application/x-java-vm
InstantiateFJAR cache enabled.
ullPagePlugin.. returning
java.security.AccessControlException: access denied (java.net.SocketPermission w
ww.javapplets.com resolve)
        at java.security.AccessControlContext.checkPermission(Unknown Source)
        at java.security.AccessController.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkConnect(Unknown Source)
        at sun.plugin.protocol.jdk12.http.HttpURLConnection.connect(Unknown Sour
ce)
        at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(Unkno
wn Source)
        at java.net.HttpURLConnection.getResponseCode(Unknown Source)
        at sun.applet.AppletClassLoader.getBytes(Unknown Source)
        at sun.applet.AppletClassLoader.access$100(Unknown Source)
        at sun.applet.AppletClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.applet.AppletClassLoader.findClass(Unknown Source)
        at sun.plugin.security.PluginClassLoader.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)
Ed's running into a security feature of Java 2 that happens when an applet is
accessed from behind a proxy.  The JRE tries to resolve the hostname via DNS
locally and can't, so it throws a security exception.  This is to prevent IP
spoofing.  This exception is not because of SOCKS.

There are two ways to get around this, as follows :

    (a) Add the IP address of the remote host to the machine's HOST file.
        On NT this will be under \winnt\system32\drivers\etc and on '9x
        it will be under \windows.

    (b) Add appropriate permissions to .java.policy to allow the remote host
        to be accessed.

Method (a) is the one which is recommended AFAIK.

Also, I'm getting exceptions when I load the applet in NS4.7, as follows :

        java.lang.NullPointerException

          at sun.awt.windows.WToolkit.checkScrImage(Compiled Code)

          at sun.awt.windows.WComponentPeer.checkImage(Compiled Code)

          at java.awt.Component.checkImage(Compiled Code)

          at java.awt.ImageMediaEntry.getStatus(Compiled Code)

          at java.awt.MediaTracker.statusAll(Compiled Code)

          at java.awt.MediaTracker.waitForAll(Compiled Code)

          at java.awt.MediaTracker.waitForAll(Compiled Code)

          at Curtain.init(Compiled Code)

        * at    netscape.applet.DerivedAppletFrame$InitAppletEvent.dispatch
(Compile     d Code)

          at java.awt.EventDispatchThread$EventPump.dispatchEvents(Compiled
Code)

          at java.awt.EventDispatchThread.run(Compiled Code)

          at    netscape.applet.DerivedAppletFrame$AppletEventDispatchThread.run
(Co     mpiled Code)

I then took the applet and packaged it for the Java Plugin 1.3.  The JRE gave
the following exception :

        java.lang.IllegalArgumentException: Width (0) and height (0) must
         be > 0

        at java.awt.image.SampleModel.<init>(SampleModel.java:109)

        at java.awt.image.SinglePixelPackedSampleModel.<init>(Single
         PixelPackedSampleModel.java:120)

        at java.awt.image.Raster.createPackedRaster(Raster.java:656)

        at java.awt.image.Raster.createPackedRaster(Raster.java:435)

        at java.awt.image.DirectColorModel.createCompatibleWritableRaster
         (DirectColorModel.java:855)

        at sun.awt.windows.WComponentPeer.createImage
         (WComponentPeer.java:322)

        at java.awt.Component.createImage(Component.java:2270)

        at Curtain.init(Curtain)

        at sun.applet.AppletPanel.run(AppletPanel.java:348)

        at java.lang.Thread.run(Thread.java:488)
I now get a "Malformed Reply from SOCKS server" error:

ing
load: class Curtain.class not found.
java.lang.ClassNotFoundException: java.net.SocketException: Malformed reply from
 SOCKS server
        at sun.plugin.protocol.http.SocksSocket.getSOCKSReply(Unknown Source)
        at sun.plugin.protocol.http.SocksSocket.connect(Unknown Source)
        at sun.plugin.protocol.http.SocksSocket.<init>(Unknown Source)
        at sun.plugin.protocol.http.SocksSocket.<init>(Unknown Source)
        at sun.plugin.protocol.jdk12.http.HttpClient.doConnect(Unknown Source)
        at sun.net.www.http.HttpClient.openServer(Unknown Source)
        at sun.net.www.http.HttpClient$2.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.net.www.http.HttpClient.privilegedOpenServer(Unknown Source)
        at sun.net.www.http.HttpClient.openServer(Unknown Source)
        at sun.net.www.http.HttpClient.<init>(Unknown Source)
        at sun.net.www.http.HttpClient.<init>(Unknown Source)
        at sun.plugin.protocol.jdk12.http.HttpClient.<init>(Unknown Source)
        at sun.plugin.protocol.jdk12.http.HttpClient.New(Unknown Source)
        at sun.plugin.protocol.jdk12.http.HttpURLConnection.privBlock(Unknown So
urce)
        at sun.plugin.protocol.jdk12.http.HttpURLConnection$PrivilegedBlockActio
n.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.plugin.protocol.jdk12.http.HttpURLConnection.connect(Unknown Sour
ce)
        at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(Unkno
wn Source)
        at java.net.HttpURLConnection.getResponseCode(Unknown Source)
        at sun.applet.AppletClassLoader.getBytes(Unknown Source)
        at sun.applet.AppletClassLoader.access$100(Unknown Source)
        at sun.applet.AppletClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.applet.AppletClassLoader.findClass(Unknown Source)
        at sun.plugin.security.PluginClassLoader.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)

after modifying the HOSTS file as recommended.  Note that I haven't rebooted
since modifying HOSTS.  I will do so and retry the test.
I retried after rebooting, and saw the same error:

Malformed Reply from SOCKS server

Robert, can you please continue to advise me on this bug?

Ed
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
I removed the SOCKS server from the Java Plug-in control panel and now it
works!  Woohoo!

In order to verify this, you'll have to get a Java Plugin later than 10/14/99.

Don't even try re-opening it unless you've tested it with a Java Plugin later
than 10/14/99.

Any attempt to re-open this bug without testing with a Java Plugin from later
than 10/14/99 will result in the status being returned to FIXED without
consulting the bug.
I would to verify this bug. How do I get the newer plugin ?
Talk to Chris Yeh, I sent him a recent plugin.
Status: RESOLVED → VERIFIED
Verified on Windows in build 1999111520-M11
Verified on Mac in build 1999111612-M11
*** Bug 32781 has been marked as a duplicate of this bug. ***
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.