Problema com ZipOutputStream

Bom dia, senhores,

estou tentando compactar um arquivo xml bem grande (cerca de 65MB), o trecho a seguir faz isso:

[code]
private int TAMANHO_BUFFER = 2048;
private byte[] dados = new byte[TAMANHO_BUFFER];

BufferedInputStream origem = null;
FileOutputStream destino = new FileOutputStream(new File(this.pathArquivoZip));
ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(destino));

                FileInputStream fileInputStream = new FileInputStream(this.pathArquivoXml);
                origem = new BufferedInputStream(fileInputStream, this.TAMANHO_BUFFER);
                ZipEntry entrada = new ZipEntry(this.pathArquivoXml);
                zipOutputStream.putNextEntry(entrada);
                int contador;
                while ((contador = origem.read(this.dados, 0, this.TAMANHO_BUFFER)) != -1) {
                    zipOutputStream.write(this.dados, 0, contador);
                }
                origem.close();
                zipOutputStream.close();[/code]

O código executa sem exceções, o arquivo ZIP é gerado, porém fica vazio (como se nenhum arquivo tivesse sido zipado). O que estou fazendo de errado? Já tentei aumentar o buffer, mas nada funciona.

Obrigado pela atenção!