That is the exception you get when something has previously called getInputStream on the request.
Is that your exact code or is there other code associated
OK - that's a bug!
It looks like setCharacterEncoding is only working if you
subsequently call getParameter. The getReader call looks
to have been broken some time ago - the new reader is
created OK, but the request state was not setup correctly.
This will be in 4.0.6 and 4.1.0RC1. Hopefully both out
in the next day or two and then 4.1.0RC1 will propogate
to JBoss shortly after that.