Validator customizado não funciona no JSF2

Pessoal,

Estou tentando fazer um validator customizado usando o código abaixo:

<rich:popupPanel header="Novo" id="novoPane"
				domElementAttachment="form" width="500" height="400" model="true">
		<h:form id="form">
<h:inputSecret id="senhaIns" required="true"
							value="#{usuarioControl.usuarioLogin.senha}" size="30"
							validator="#{usuarioControl.validarSenha}">
						</h:inputSecret>
<a4j:commandButton value="Inserir" 
							action="#{usuarioControl.novo}" 
							execute="@form" 
							render="out"
					    	oncomplete="if(#{facesContext.maximumSeverity==null}){#{rich:component('novoPane')}.hide();}" >
							</a4j:commandButton>
</h:form> 
</rich:popupPanel>
	public void validarSenha(FacesContext context, UIComponent validate, Object value) {     
		String senha = null;
		String repetirSenha = null;

		HtmlInputSecret repetirSenhaIns = null;
		repetirSenhaIns = (HtmlInputSecret) context.getViewRoot().findComponent("form:repetirSenhaIns");

		if(value!=null){
			senha = value.toString();
		}
		if(repetirSenhaIns.getSubmittedValue()!=null){
			repetirSenha = repetirSenhaIns.getSubmittedValue().toString();
		}

		System.out.println("senha:"+senha);
		System.out.println("repetir senha:"+repetirSenha);

		if(senha!=null && repetirSenha!=null){

			if(!senha.equals(repetirSenha)) {

				FacesMessage msg = new FacesMessage("Senhas não conferem", "");
				msg.setSeverity(FacesMessage.SEVERITY_ERROR);
				context.addMessage("form:senhaIns", msg); 
				context.addMessage("senha", msg); 

				System.out.println("*** Senhas não conferem ***");

				throw new ValidatorException(msg); 

				//throw new ValidatorException(msg);
			}
		}
	}

Mas o erro não aparece na página.

Estou usando JSF2 e Richfaces 4

Conseguiu resolver? Estou com problema parecido.