So, which is right, append(char ), or append(Object) or is this open to interpretation. Or is the question 'what is the type of char'? Also interesting to note bcj does valueOf(Object) while javac does toString()
Further, setting char ar = null; compiles with both bcj and javac, but crashes with a null pointer exception for bcj byte code, and produces *null* for javac code.
author and iconoclast
bcj is wrong, plain and simple. This error has been discussed here before, not that long ago, actually. I think it was in the advanced forum last time. As you quoted from the spec, the result should be as if toString() were called on the array, and that's not what bcj does.