Bom dia pessoal,
Estou recebendo dados de um WebService compactados no formato GZip. Porém, quando a mensagem compactada é muito grande estou tendo problemas na hora de efetuar a descompactação. O erro é o seguinte:
java.io.IOException: Corrupt GZIP trailer
at java.util.zip.GZIPInputStream.readTrailer(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
Já dei uma pesquisada e parece que há um bug mesmo no GZIPInputStream. Eu fiz uma tentativa, sobreescrevendo a classe GZIPInputStream, mas desta forma a minha mensagem não é descompactada por completo:
private class StGZIPInputStream extends GZIPInputStream {
public StGZIPInputStream( InputStream in ) throws IOException {
super( in );
}
public int read( byte[] buf, int off, int len ) throws IOException {
try {
return super.read( buf, off, len );
} catch ( IOException ioe ) {
if ( ioe.getMessage().contains( "Corrupt GZIP trailer" ) ) {
return -1;
}
throw ioe;
}
}
}
Alguém tem alguma idéia de como resolver este problema ?
Obrigado.