Estou com um bean que preciso que certas varáveis sejam inicializadas apenas no momento em que ela é instanciada. Para isso, coloquei no @posconstruct essa inicialização.
Porém monitorar a classe com o PhaseListener, percebi que mesmo o bean sendo sessionScope (ou ViewScope), ele passar por todas as fases (de 1 a 6) a cada interação com o formulário da pagina, inclusive executando o postcontruct e o predestroy novamente.
No meu caso, estou com um formulário de cadastro que recebe dados do login da rede social e se não vier alguma informação importante (como e-mail) ele renderiza o form para o complemento dessas informações.
O problema é que ao digitar o e-mail (que tem validação de formato) ele já passa por todas as fases do Bean e com isso, a informação de que o e-mail estava vazio se perde e o sistema passa a achar que o e-mail digitado veio da rede social e isso gera inconsistência.
Como fazer para evitar que a classe seja instanciada o tempo todo? Se não for possível, como fazer para que algumas variáveis só sejam alteradas uma única vez?