Brett Porter <[EMAIL PROTECTED]> writes: >How?
>if keyBuffer is null (which it isn't, the constructor initialises it), >String.valueOf( keyBuffer ) would be an NPE as well. toString() should >not return null and won't for a StringBuffer. What the...????? --- cut ---- import java.io.File; public class test { public static void main(String[] args) throws Exception { System.out.println(String.valueOf((Object) null)); } } --- cut ---- [EMAIL PROTECTED] tmp]$ javac test.java [EMAIL PROTECTED] tmp]$ java -version java version "1.5.0_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09) Java HotSpot(TM) Client VM (build 1.5.0_02-b09, mixed mode, sharing) [EMAIL PROTECTED] tmp]$ java test Exception in thread "main" java.lang.NullPointerException at java.lang.String.<init>(String.java:173) at java.lang.String.valueOf(String.java:2591) at test.main(test.java:5) [EMAIL PROTECTED] tmp]$ javac test.java [EMAIL PROTECTED] tmp]$ java -version java version "1.4.2_08" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03) Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode) [EMAIL PROTECTED] tmp]$ java test null Oh fsck, Sun, please, please, please don't tell me that you screwed _that_ one up..... The javadoc even states: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#valueOf(java.lang.Object) --- cut --- valueOf public static String valueOf(Object obj) Returns the string representation of the Object argument. Parameters: obj - an Object. Returns: if the argument is null, then a string equal to "null"; otherwise, the value of obj.toString() is returned. See Also: Object.toString() --- cut --- Congrats. You found a bug. IMHO. This is BTW one of my personal mnemonics. I do replace foobar.toString() with String.valueOf(foobar) because up until a few seconds ago I was under the firm impression, that String.valueOf(...) could _never_ throw NPE. This is a constant source of sorrow with code that I'm working on, because often co-workers tell me "that can never be null". Yeah, unless, some weird condition happens that was not tested for and surfaced after customer installation. Better safe than sorry. Defensive programming... :-) Regards Henning -- Dipl.-Inf. (Univ.) Henning P. Schmiedehausen INTERMETA GmbH [EMAIL PROTECTED] +49 9131 50 654 0 http://www.intermeta.de/ RedHat Certified Engineer -- Jakarta Turbine Development -- hero for hire Linux, Java, perl, Solaris -- Consulting, Training, Development 4 - 8 - 15 - 16 - 23 - 42 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]