@RequestParam não funciona com chamadas POST no Spring MVC

Eu estava vendo um problema estranho em que usar @RequestParam para uma chamada POST com Spring MVC não estava funcionando e o parâmetro era sempre nulo.

Dei uma olhada no código FormHTTPMessageConverter e percebi que o corpo sempre vinha em branco, embora a solicitação de entrada tivesse um corpo.

public MultiValueMap<String, String> read(Class<? extends MultiValueMap<String, ?>> clazz,
HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {

MediaType contentType = inputMessage.getHeaders().getContentType();
Charset charset = contentType.getCharSet() != null ? contentType.getCharSet() : this.charset;
String body = FileCopyUtils.copyToString(new InputStreamReader(inputMessage.getBody(), charset));

Portanto, alguém estava consumindo o inputStream na mensagem de solicitação antes de atingir este conversor e, depois de algumas pesquisas, descobri que o culpado era RequestLoggingFilter que habilitei em web.xml e configurei a opção de log payLoad como true. Com certeza, ele estava registrando a carga útil, mas consumindo o fluxo de entrada, tornando-o disponível para qualquer coisa no futuro! Desativei o registro do payLoad e tudo funcionou bem novamente!