Problemas com validação usando o jsf

Boa tarde, terminei o curso da Caelum e agora estava tentando fazer os exercícios opcionais a apostila é a FJ-26, ate então estava indo bem, mas o problema acontece no exercicio 19.16 para converter valores.

Segue a classe que é responsável por converter os valores.

import java.util.regex.Pattern;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;

public class CPFConverter implements Converter{

private static Pattern pattern = Pattern.compile("[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}-[0-9]{2}");

public Object getAsObject(FacesContext fc, UIComponent comp, String valor) {
	if(pattern.matcher(valor).find()){
		CPF cpf = new CPF();
		cpf.setCpf(valor);
		return cpf;
	}
	throw new ConverterException(new FacesMessage("Não foi possível converter " + valor));
}

public String getAsString(FacesContext fc, UIComponent comp, Object cpf) {
	return ((CPF)cpf).getCpf();
}

}

coloquei no mode debug do eclipse e a chamada entra no metodo public Object getAsObject o problema é que ele não consegue formatar o texto, um exemplo 22233344455 e ele fala que não consegue formatar para 222.333.444 - 55

Alguem poderia iluminar o meu caminho?

Abraço.

Você não está tentando converter e sim validar o campo. Se você recebe 22233344455 é certo que não é igual a 222.333.444-55

Realmente ele esta validando e não convertendo, como na apostila esta Converter eu pensei que ele estivesse convertendo e não validando.

O problema esta resolvido!!!

Obrigado pela ajuda!!!

Abraço