Wanted to suggest a small optimization. It is quite common for applications to do a quick check (along with null-ness) for 0-length of string-typed fields. Today's Utf8.length() implementation is:
I believe this could easily get optimized to return this instead:
Thus avoiding the need to create the string representation for this common use case (and scenario).