The kind of errors I hate the most are the ones you cannot even find in the documentation. When you get no compiler warnings, and even an incentive from your preferred auto-completion tool to go straight into them.

Todays such error is the following:

byte[] buffer = /* something that fills the buffer with the contents of a string*/;<br /> String stringBuffer = new String(buffer, Charset.forName("UTF8"));

What’s wrong here?? Compiles fine, looks fine…. let’s read the doc… fine. Except, as it turns out, for long buffers, it will truncate the string and add a trailing . So you need to do something like this instead

String stringBuffer = new String(buffer, 0, lengthOfBuffer, Charset.forName("UTF8"));

That gives you a correct string, not truncated and not with a at the end. *sigh*

Categories: Technology