Ler PDF à partir de bytes

Olá pessoal estou com o seguinte problema:

Tenho um PDF gerado pelo Jasper Reports e gravado no banco como um array de bytes e quando o usuário necessita imprimi-lo precisso pegá-lo do banco e imprimir no JasperViewer.

O trecho de código eh o seguinte:

InputStream bays = new ByteArrayInputStream(auto.getArquivo());

JasperPrint print = (JasperPrint) JRLoader.loadObject(bays) ; //Erro

JasperViewer viewer = new JasperViewer(print, false);

viewer.setVisible(true);

No ponto que esta marcado com a palavra Erro, dá o seuinte erro:

java.io.StreamCorruptedException: invalid stream header

Error loading object from InputStream

Alguem sabe o que pode ser isso?

Será que na linha:

InputStream bays = new ByteArrayInputStream(auto.getArquivo());

auto.getArquivo() não está retornando nulo?

Está retornando corretamente, o problema eh que o stream tem um fluxo de bytes cujo cabeçalho eh de um Pdf e o metodo JRLoader.loadObject(bays) não reconhece esse cabeçalho.

Vc sabe se existe algum metodo que receba um stream cujo o tipo do cabeçalho e um Pdf??

[quote=“gconcon”]Será que na linha:

InputStream bays = new ByteArrayInputStream(auto.getArquivo());

auto.getArquivo() não está retornando nulo?[/quote]