Uma das particularidades do JSF com o Facelets e que um metodo get de um Bean pode ser executado mais de uma vez em uma requisicao. Esse numero pode aumentar quando o metodo for chamado nas propriedades rendered dentro de um h:datatable ou um ui:repeat.E um comportamento bastante conhecido e o ideal e que nao se coloque regras de negocio nesses metodos ou se faca cache no Managed Bean. Isto e muito comum quando precisamos executar um metodo para cada linha de um datatable, como no exemplo abaixo: Neste caso o botao de exclusao e condicionado a uma regra que esta no Managed Bean. Existem algumas alternativas para resolver o problema que e causado pelo metodo ser chamado diversas vezes e a mais comum e criar um cache no Managed Bean.Um map pode ser utilizado para guardar os valores do que ja foi executado. Isto e muito utilizado, mas faz com que o seu cache fique com o escopo do MB e isto nem sempre isto e o ideal.Para simulacao criei o uma lista com 15 elementos e fiz com que o metodo possuiPermisao retornasse true para os elementos que possuam id par: @PostConstruct public void init() { produtos = new ArrayList(15); for (int i = 1; i <= 15; i++) { Produto p = new Produto(); p.setId((long) i); p.setNome("Produto " + i); Double valor = Math.random() * 50; p.setValor(valor); produtos.add(p); } } public boolean possuiPermissao(Produto p) { sleep(); boolean resultado = p.getId() % 2 == 0 ? true : false; log.info(MessageFormat.format("possuiPermissao(Produto {0})",p.getId())); return resultado; } Ao acessar a pagina aparece isto no log:21:01:22,158 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 1)21:01:22,181 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 2)21:01:22,202 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 2)21:01:22,223 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 2)21:01:22,244 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 2)21:01:22,264 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 2)21:01:22,287 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 3)21:01:22,309 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 4)21:01:22,329 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 4)21:01:22,349 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 4)21:01:22,370 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 4)21:01:22,390 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 4)21:01:22,412 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 5)21:01:22,434 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 6)21:01:22,454 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 6)21:01:22,475 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 6)21:01:22,496 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 6)21:01:22,517 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 6)21:01:22,541 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 7)21:01:22,563 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 8)21:01:22,584 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 8)21:01:22,605 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 8)21:01:22,637 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 8)21:01:22,658 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 8)21:01:22,680 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 9)21:01:22,702 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 10)21:01:22,723 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 10)21:01:22,743 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 10)21:01:22,764 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 10)21:01:22,784 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 10)21:01:22,806 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 11)21:01:22,828 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 12)21:01:22,849 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 12)21:01:22,869 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 12)21:01:22,890 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 12)21:01:22,910 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 12)21:01:22,933 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 13)21:01:22,955 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 14)21:01:22,976 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 14)21:01:22,997 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 14)21:01:23,018 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 14)21:01:23,038 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 14)21:01:23,060 INFORMACOES [ProdutoMB] (http-...) possuiPermissao(Produto 15)Podemos notar que o metodo foi executado uma vez para os objetos que ele retorna false e cinco vezes para o que retorna true. Isto e um comportamento esperado e voces podem ver uma