Último produto listado não renderiza no datatable do primefaces

0 respostas
T

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;
    }
Criado 5 de junho de 2013
Respostas 0
Participantes 1