Oi Cassius
Analisei seu projeto, e o que está ocorrendo com ele é o seguinte:
O Problema é que você está injetando seu LivroDataModel
que é do escopo de Request
dentro do seu bean LivroBean
que é do escopo de View
.
Para resolver remova a declaração de escopo do seu LivroDataModel
quando você não define um escopo, o CDI
assume que o escopo padrão será Dependent
ou seja ele usará o mesmo escopo da classe que ele está sendo injetado.
Nesse caso como você está injetando seu LazyDataModel
que tem o escopo Dependent
dentro do seu bean LivroBean
que tem o escopo ViewScoped
seu LazyDataModel
terá o escopo ViewScoped
.
Para você entender o que ocorreu segue uma breve explicação:
Ao clicar no botão de editar
ou remover
é gerado uma nova request e criado um novo LivroDataModel
, e com isso recriado toda a DataTable
.
Por tanto o botão que você clicou não existe mais pois teve de ser recriado. Dessa forma não executando seu método.
Se útil marque como solução.