NullPointerException
thrown injava.awt.Graphics.drawString()
SymptomsWhen running an applet in a browser using the Sun JRE, a
NullPointerException
is thrown by thejava.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 aNullPointerException
.Resolution
Code defensively to ensure only a non-null string is passed to the
drawString()
method. For example, the following codeshould be changed to:
Graphics g = getGraphics();
g.drawString(s, 100, 100);
Graphics g = getGraphics();
if (s !== null) {
g.drawString(s, 100, 100);
}
N/A