Como copiar lista para não ocorrer exception

for (Produto p : listaProduto) {
//trx.begin();
System.out.println(p.getCodigoProduto()== null ? "Erro": p.getCodigoProduto());
System.out.println(p.getDescricao());
for (Historico h : p.getHistoricos()) {
Collections.reverse(p.getHistoricos());
System.out.println(h.getMesesHistoricos());
System.out.println(h.getQuantidade());
p.getHistoricos().add(h);
// manager.persist(p);
// trx.commit();
}

A exception ocorre em p.getHistoricos();

Qual exceção ocorre em p.getHistoricos()?