JSF 2 - selectManyCheckbox & Ajax & required?

Bom Dia pessoal,
estou com um problema e gostaria da ajuda de vcs para resolver… o problema está no componente h:selectManyCheckbox do JSF 2
que, ao setar o atributo “required” para “true”, o evento de “unselect” não dispara nenhum listener e nem o setValue(). Abaixo o código exemplo:
Evento de “select” dispara normalmente.

<h:selectManyCheckbox id="ps" name="ps"
	value="#{relatorio.periodosCenariosSelecionadosAtuais}"
	layout="pageDirection" required="true" requiredMessage="Escolha um periodo."
	valueChangeListener="#{relatorio.perCenChangeListener}">
								
	<f:ajax event="click" render="ps relatoriosResumoPanel"/>									
	<f:selectItems id="selectItemPeriodosCenariosAtuais"
			name="selectItemPeriodosCenariosAtuais"
			value="#{relatorio.periodosCenariosAtuais}" />
</h:selectManyCheckbox>

Já tentei usando “listener” no f:ajax, atributo “execute=’@this’” e nada.
Somente consigo disparar o evento de “unselect” quando retiro o atributo “required”.

Seria isso um bug ou o “required” está modificando o ciclode vida do JSF e não chamando os listeners e o setvalue() do “h:selectManyCheckbox”??

Desculpa pessoal, como um passe de mágica, começou a funcionar, rs
essa lei de Moore é demais, haha

Pessoal, essa lei de Moore é demais msm.
O problema retornou … agora coloquei um Listener para as as fases e durante o “unselect” com o atributo “required=true”
está pulando a fase 4 - UPDATE MODEL VALUES e 5 - INVOKE APPLICATION.

Enquanto que no “select” passa por todas as fases.

bug? ou é isso mesmo que deveria acontecer como “required=true”?

Vou tentar responder ao meu próprio problema, se eu estiver errado me corrijam:

problema está no “required=true”, pq?
Porque quando é feito o “unselect” no checkbox, o processo de validação(3 fase) falha,
pois não existe nenhum valor setado para o componente.
Portanto, ao falhar a validação do compoente, as seguintes fases de UPDATE_MODELS(fase 4) e
INVOKE_APPLICATION(fase 5) são pulados, indo direto para a fase final RENDER_RESPONSE(fase 6).

Como resolver? Simples, basta colocar colocar o atributo “immediate=true” ou retirar “required=true”.

Mas então temos outro problema, o componente perde a validação de “required”. Sendo possível submter
o formulário sem que seja marcado um checkbox. O que exigiria tratamento no servidor.

Alguém imagina algum contorno para esse problema?