Erro em subrelatorio jasperreports

pessoal tenho um relatorio e para cada registro eh exibido um subrelatorio. Funciona perfeitamente se o relatorio pai possui apenas um registro, porem se existem um ou mais registros, no segundo já acontece um erro. Carrego meu subreport por um InputStream

Alguem sabe qual o problema ?


// nao se importem com os caminhos, aqui no meu micro esta certo e sem hard code

InputStream subRelatorioErrosImportacao = new FileInputStream(
				"caminho\\jasper\\subrelatorio.jasper"); 

Map<String, Object> parametros = new HashMap<String, Object>();
parametros.put("SUBREPORT_DIR", subRelatorioErrosImportacao);

JasperFillManager.fillReportToFile(
				"caminho\\jasper\\relatorio.jasper", parametros,
				dataSource);

JasperViewer.viewReport(
				"caminho\\jasper\\relatorio.jrprint", false);

meu data source:

public class LogImportacaoDataSource implements JRDataSource {

	private Collection<Arquivo> arquivos;
	private Iterator<Arquivo> iteratorArquivos;
	private Arquivo arquivo;
        
        public LogImportacaoDataSource(Collection<Arquivo> arquivos) {
		this.arquivos = arquivos;
		this.iteratorArquivos = this.arquivos.iterator();
	}

	@Override
	public Object getFieldValue(JRField campo) throws JRException {
		return this.arquivo;
	}

	@Override
	public boolean next() throws JRException {
		boolean existeProximoArquivo = iteratorArquivos.hasNext();
		
		if(existeProximoArquivo) {
			this.arquivo = iteratorArquivos.next();
		}
		
		return existeProximoArquivo;
	}
}

o erro :

Exception in thread "main" net.sf.jasperreports.engine.JRException: Error loading object from InputStream
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:202)
	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:309)
	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:270)
	at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:260)
	at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:486)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1427)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:729)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportContent(JRVerticalFiller.java:276)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:118)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:911)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:833)
	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:628)
	at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:517)
	at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:469)
	at control.ImportacaoMB.main(ImportacaoMB.java:127)
Caused by: java.io.IOException: Read error
	at java.io.FileInputStream.readBytes(Native Method)
	at java.io.FileInputStream.read(Unknown Source)
	at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)
	at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
	at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
	at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
	at java.io.ObjectInputStream.<init>(Unknown Source)
	at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:57)
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:197)
	... 15 more

lembrando que soh ocorre quando tenho mais de um registro

abrassssss