ServletOutputStream + POI (HSSF)

Boa tarde galera.

Estou criando uma planilha excel usando o HSSF do POI.
Quando gero a planilha para um outputstream no disco, ela é gerada corretamente.
Quando gero ela, e mando para o ServletOutputStream, quando eu vou abrir ela no excel, ocorre um erro dizendo que o arquivo precisa ser recuperado.
Procurei alguma coisa no google, tem mais pessoas que tiveram este problema, mas não tive exito em achar uma solução até agora.

Abaixo o código que estou usando para gerar o output para o disco (funciona).


ArrayList resultados = ((ConsultaEstatisticaDetalhadaForm) form).getResultados();
if (resultados != null) {
	HSSFWorkbook wb = null;
	if (codigoTipoConsulta != null && codigoTipoConsulta.equalsIgnoreCase("a")) {
		wb = new ConsultarEstatisticaDetalhada().exportaEstatisticaDetalhadaAnaliticaXLS(resultados);
	} else if (codigoTipoConsulta != null && codigoTipoConsulta.equalsIgnoreCase("s")) {
		wb = new ConsultarEstatisticaDetalhada().exportaEstatisticaDetalhadaSinteticaXLS(resultados);
	}
	if (wb != null) {
		File fTemp = new File("C:\\temp.xls");
		FileOutputStream fOutTemp = new FileOutputStream(fTemp);
		wb.write(fOutTemp);
		fOutTemp.close();
		...
		...
		...
	}
}

Abaixo quando gero saída para o ServletOutputStream (ocorre erro ao abrir o .xls)

ArrayList resultados = ((ConsultaEstatisticaDetalhadaForm) form).getResultados();
if (resultados != null) {
	HSSFWorkbook wb = null;
	if (codigoTipoConsulta != null && codigoTipoConsulta.equalsIgnoreCase("a")) {
		wb = new ConsultarEstatisticaDetalhada().exportaEstatisticaDetalhadaAnaliticaXLS(resultados);
	} else if (codigoTipoConsulta != null && codigoTipoConsulta.equalsIgnoreCase("s")) {
		wb = new ConsultarEstatisticaDetalhada().exportaEstatisticaDetalhadaSinteticaXLS(resultados);
	}
		if (wb != null) {
		response.setContentType("application/vnd.ms-excel");
		response.setHeader("Content-Disposition", "attachment; filename=estatistica.xls");
		response.setHeader("Cache-Control", "false");
		response.setContentLength(wb.getBytes().length);
		ServletOutputStream outputStream = response.getOutputStream();
		wb.write(outputStream);
		outputStream.flush();
		outputStream.close();
	}
	return null;
}

Alguem já passou por esta situação ou teria uma dica de como eu poderia resolver o problema?

Att. Diego.