Corrupt GZIP trailer

1 resposta
T

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.

1 Resposta

T

Pelo que parece, o bug que existe na biblioteca do java ocorre ao tentar descompactar um arquivo com mais de 2GB, o que não é o meu caso. Estou tentando realizar a descompactação de um byte[] de pouco mais de 100.000 posições, recebido através de um WebService.

Ninguém tem idéia de como resolver este problema?

Criado 22 de julho de 2010
Ultima resposta 23 de jul. de 2010
Respostas 1
Participantes 1