Bom dia a todos,
estou com o seguinte problema e gostaria que alguém pudesse me ajudar.
O código abaixo preenche toReturn com todos os produtos da minha tabela.
Depois comparo com os produtos presentes do toReturn com os presentes na compra.
Caso eles estejam presentes removo o item da lista (toReturn).
A ideia é filtrar os produtos de forma que não possam ser inseridos duas vezes .
O problema é que recebo a seguinte mensagem no console:
Erro getProductsOfSystem: java.lang.NullPointerException - null
Além disso a descrição do produto não renderiza na página após rodar o código abaixo.
O estranho que todas as operações com o BD ocorrem normalmente e quando saio e retorno na página
o produto aparece normalmente.
Alguém tem alguma ideia do que pode estar acontecendo?
Agradeço desde já qualquer ajuda.
Obrigado.
public List<SelectItem> getProductsOfSystem() {
List<SelectItem> toReturn = new LinkedList<SelectItem>();
for (Produto supplier : produtoDAO.getProdutos()) { //preenche o toReturn com todos os itens presentes na tabela
toReturn.add(new SelectItem(supplier, supplier.getDescricao()));
System.out.println("Listando: " + supplier.getDescricao());
}
try {
int h;
for (int i = 0; i < cachedItemCompras.size(); i++) {//laço do itens presente na compra cachedItemCompra
ItemCompra itemCompra = cachedItemCompras.get(i);
h = toReturn.size();
System.out.println("size to return: " + toReturn.size());
for (int x = 0; x < h; x++) {
SelectItem selectItem = toReturn.get(x);
Produto p = (Produto) selectItem.getValue();
if (itemCompra.getProduto().getDescricao().equals(p.getDescricao())) {//vejo se já existe no cachedItemCompra, se sim removo o produto da list toReturn
System.out.println("toReturn: " + toReturn.size());
toReturn.remove(selectItem);
h--;
}
}
}
} catch (NullPointerException e) {
System.out.println("Erro getProductsOfSystem: " + e + " - " + e.getMessage());
}
return toReturn;
}