Name: gm110360 Date: 08/13/2003
FULL PRODUCT VERSION :
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
FULL OS VERSION :
Windows 2000
A DESCRIPTION OF THE PROBLEM :
I am calling getParameter() from JApplet and I am getting the following error message:
"java.lang.NullPointerException at java.applet.Applet.getParameter(Applet.java:158)"
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Compile BadApplet, create jar file, put jar into web directory. Open html file page (i have tried 1.3, 1.4, html below as well as html generated with htmlconverter.exe (second below) nothing works):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Alpha Gen US GUI</title>
</head>
<BODY BGCOLOR="#CCCCCC">
<FONT COLOR="#808080">
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 1000 HEIGHT = 750>
<NOEMBED>
<XMP>
<APPLET CODE = "BadApplet.class" ARCHIVE="test.jar" WIDTH = 1000 HEIGHT = 750>
</xmp>
<param>
<param>
<param>
<param>
<param>
</applet>
</noembed>
</object>
</body>
</html>
//++++++++++++++ Generated by HTML Converter ++++++++++++++++++++++++
<html>
<head>
<title>Alpha</title>
</head>
<body>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<object>
<param>
<param>
<param>
<param>
<param>
<param>
<COMMENT>
<embed>
<noembed>
</noembed>
</embed>
</COMMENT>
</object>
<!--
<APPLET CODE = "BadApplet.class" ARCHIVE = "test.jar" WIDTH = 1000 HEIGHT = 750>
<PARAM NAME = "HOST" VALUE = "caldtd524564" >
<PARAM NAME = "PORT" VALUE = "10011" >
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
applet started
ACTUAL -
applet initialization failed
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NullPointerException
at java.applet.Applet.getParameter(Applet.java:158)
at BadApplet.initLogin(BadApplet.java:28)
at BadApplet.<init>(BadApplet.java:21)
at BadApplet.<init>(BadApplet.java:16)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:306)
at java.lang.Class.newInstance(Class.java:259)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:566)
at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1775)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:495)
at sun.applet.AppletPanel.run(AppletPanel.java:292)
at java.lang.Thread.run(Thread.java:536)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.rmi.*;
import java.rmi.server.*;
import java.util.*;
import java.text.*;
import javax.swing.table.*;
import javax.swing.border.*;
public class BadApplet
extends javax.swing.JApplet
{
public BadApplet() {
this(true);
}
public BadApplet(boolean inApplet) {
inAnApplet = inApplet;
initLogin();
}
protected void initLogin()
{
System.out.println("before getParameter()");
String host = getParameter("HOST");
System.out.println("host = " + host);
}
protected boolean inAnApplet = true;
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
If I hardcode the parameters (do not call getParameter() at all) everything works fine
(Incident Review ID: 189273)
======================================================================
###@###.### 2003-08-14