java.lang.NullPointerException Thrown in java.awt.Graphics.drawString()
Symptoms
When running an applet in a browser using the Sun JavaTM Runtime Environment (JRETM), a java.lang.NullPointerException
is thrown by the java.awt.Graphics.drawString() method. The
same applet runs under the Microsoft Virtual Machine (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 java.lang.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);
}