NullPointerException thrown in java.awt.Graphics.drawString()


Symptoms

When running an applet in a browser using the Sun JRE, a NullPointerException is thrown by the java.awt.Graphics.drawString()method. The same applet runs under the Microsoft VM.

Cause

This exception is caused by passing a null string to the Graphics.drawString() method in the Sun JRE.

The Java class libraries in the Sun JRE have changed over time. Some APIs have been clarified, some have been deprecated, and some have had their implementation altered.

The result of passing a null string to the Graphics.drawString() method was not well defined, and the Microsoft VM treats null as an empty string. However, the implementation in the Sun JRE does not accept null as a valid string, thus resulting in a NullPointerException.

Resolution

Code defensively to ensure only a non-null string is passed to the drawString() method. For example, the following code

Graphics g = getGraphics();
g.drawString(s, 100, 100);

should be changed to:

Graphics g = getGraphics();
if (s !== null) {

   g.drawString(s, 100, 100);
}

Related Information

        N/A