Ler conteúdo da requisição http

Olá pessoal,

estou querendo investigar um problema na comunicação de server com rest e um cliente delphi.
Então, tenho um listener no server que até consegue obter o conteúdo. Mas depois de eu ler o conteúdo acho que ele perdido ou algo assim, pois a requisição não é devidamente completada.
Eis o listener

public class ApplicationListener implements ServletRequestListener {
	@Override
	public void requestDestroyed(ServletRequestEvent arg0) {
	}

	@Override
	public void requestInitialized(ServletRequestEvent arg0) {
		try {
			Logger.info(convertStreamToString(arg0.getServletRequest().getInputStream()));
		} catch (IOException e) {
			Logger.error("Erro ao ler requisição.", e);
		}
	}

        // este eu peguei de um exemplo na net.
	private String convertStreamToString(InputStream is) throws IOException {
		if (is != null) {
			Writer writer = new StringWriter();

			char[] buffer = new char[1024];
			try {
				Reader reader = new BufferedReader(new InputStreamReader(is,
						"UTF-8"));
				int n;
				while ((n = reader.read(buffer)) != -1) {
					writer.write(buffer, 0, n);
				}
			} finally {
				is.close();
			}
			return writer.toString();
		} else {
			return "";
		}
	}

Quando faço a leitura o InputStream o servidor me retorna Codigo 400 Bad Request. Se eu comento a linha que faz a leitura funciona certinho.

Requisições GET não possuem conteúdo pra ler via inputstream.

O método que está sendo utilizado é POST e o conteúdo é do tipo text/xml.
Outra coisa que também não está explicito: o conteúdo está sendo impresso no log.
A primeira requisição é o login, então eu consigo até imprimir o xml que estou utilizando para tal. Mas não é essa a requisição que estou querendo analisar e sim as requisições após o login. Mas como ocorre problema já na primeira requisição, não tenho como analisar requisições posteriores.