Thanks for doing this! A few comments.
http://gwt-code-reviews.appspot.com/1588803/diff/2001/src/com/google/gwt/user/server/rpc/RPCServletUtils.java File src/com/google/gwt/user/server/rpc/RPCServletUtils.java (right): http://gwt-code-reviews.appspot.com/1588803/diff/2001/src/com/google/gwt/user/server/rpc/RPCServletUtils.java#newcode70 src/com/google/gwt/user/server/rpc/RPCServletUtils.java:70: private static ConcurrentHashMap<String, Charset> CHARSET_CACHE = Maybe have a private static method that creates this map and adds CHARSET_UTF8 as the first entry? Suggestion: You could also map CHARSET_UTF8 to the null key; that would clean up some of the ternary ifs at other points in the code. http://gwt-code-reviews.appspot.com/1588803/diff/2001/src/com/google/gwt/user/server/rpc/RPCServletUtils.java#newcode118 src/com/google/gwt/user/server/rpc/RPCServletUtils.java:118: charset = Charset.forName(encoding); Do we want an extra level of locking here (to prevent multiple threads attempting to use Charset.forName(...)), or do you feel that in this case, the contention is acceptable? http://gwt-code-reviews.appspot.com/1588803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors