As solution I can see using HttpServletRequestWrapper instead of dealing directly with the HttpServletRequest passed by the container. This way we can provide custom implementation of HttpServletRequestWrapper that overrides javax.servlet.ServletRequestWrapper.getCharacterEncoding() and if super.getCharacterEncoding() returns 'null' then use the preconfigured one in the settings and cache it.
If other devs think this solution is ok then please create a ticket and we will improve it. On Sun, Aug 15, 2010 at 6:32 PM, Harald Wellmann <harald.wellm...@multi-m.de > wrote: > I'm not sure if this is severe or not, but I think there's a gap in the > implicit assumptions underlying WicketFilter.checkCharacterEncoding(): > > It seems the author's intention was to guarantee a postcondition of > > servletRequest.getCharacterEncoding() != null, > > but this postcondition does not hold in all cases. > > I ran into this issue after upgrading my Glassfish app server from 3.0.1 to > 3.1-b12, containing a newer release of Weld which causes the problem to > appear. After this upgrade, my log was full of warnings of the following > type: > > WARN o.apache.catalina.connector.Request - PWC4011: Unable to set request > character encoding to UTF-8 from context /xxx, because request parameters > have already been read, or ServletRequest.getReader() has already been > called > > Setting a couple of breakpoints revealed that Weld registers a > ServletRequestListener and calls request.getParameter() in that listener. By > specification, this listener gets called before all servlet filters, > including WicketFilter, and again by specification, the invocation of > servlet.request.setCharacterEncoding() from WicketFilter has no effect, > since a request parameter has already been read by the WeldListener. > > So it there are other parts of Wicket relying on the request character > encoding to be non-null, then this looks like a bug to me. Otherwise, if > Wicket handles a null character encoding gracefully, then > checkCharacterEncoding() is redundant, because it cannot be guaranteed to > have any effect. > > Regards, > > Harald > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >