Problemas com Normalizer

Olá pessoal, boa noite.

Estou com problemas em aplicar o Normalizer em um método de busca.

[code]public List<Funcionario> getFuncionariosGenerico() {
Session session = HibernateUtil.currentSession();
FuncionarioDao funcionarioDao = new FuncionarioDao(session,
Funcionario.class);
String nome = Normalizer.normalize(this.funcionario.getNome(), //ESTA É A LINHA Q ELE ACUSA NO ERRO
Normalizer.Form.NFD).replaceAll(
“\p{InCombiningDiacriticalMarks}+”, “”);

	List&lt;Funcionario&gt; lista = funcionarioDao.pesquisaFuncionarios(nome,
			this.funcionario.getCpf(), this.funcionario.getRg());

	return lista;
}[/code]

No Dao:

@SuppressWarnings("unchecked") public List&lt;Funcionario&gt; pesquisaFuncionarios(String nome, String cpf, String rg) { Criteria c = session.createCriteria(Funcionario.class); // normalizar(nome); List&lt;Funcionario&gt; results = new ArrayList&lt;Funcionario&gt;(); c.add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE)); c.add(Restrictions.like("cpf", cpf, MatchMode.ANYWHERE)); c.add(Restrictions.like("rg", rg, MatchMode.ANYWHERE)); results = (List&lt;Funcionario&gt;) c.list(); return results; }

A exception que me retorna é esta:

Caused by: java.lang.NullPointerException at java.text.Normalizer.normalize(Normalizer.java:164) at br.gov.rr.setrabes.handler.FuncionarioHandler.getFuncionariosGenerico(FuncionarioHandler.java:509) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at javax.el.BeanELResolver.getValue(BeanELResolver.java:62) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64) at org.apache.el.parser.AstValue.getValue(AstValue.java:118) at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45) at org.apache.el.parser.AstNot.getValue(AstNot.java:42) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) ... 47 more

Tentei implentar o normalizer tanto no bean quanto no dao, e ele dá o mesmo erro… sempre na linha do normalizer.normalize.

Eae pessoal, o que pode ser??

Valeu.

de uma olhada no

this.funcionario.getNome();

se ele naum esta retornando null,parece que naum a nada errado com o normalize.

Antes de tudo, boa tarde e obrigado por ter respondido…
Eu já tentei de outras formas, por exemplo assim no Dao:

[code] @SuppressWarnings(“unchecked”)
public List<Funcionario> pesquisaFuncionarios(String nome, String cpf,
String rg) {
Criteria c = session.createCriteria(Funcionario.class);
normalizar(nome);
List<Funcionario> results = new ArrayList<Funcionario>();
c.add(Restrictions.ilike(“nome”, nome, MatchMode.ANYWHERE));
c.add(Restrictions.like(“cpf”, cpf, MatchMode.ANYWHERE));
c.add(Restrictions.like(“rg”, rg, MatchMode.ANYWHERE));
results = (List<Funcionario>) c.list();
return results;
}

public static String normalizar(String n) {

	String nome = Normalizer.normalize(n, Normalizer.Form.NFD);
	return nome.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");

}[/code]

E ele sempre me acusa como null na linha que se refere ao normalizer…

Caused by: java.lang.NullPointerException at java.text.Normalizer.normalize(Normalizer.java:164) at br.gov.rr.setrabes.dao.FuncionarioDao.normalizar(FuncionarioDao.java:133) at br.gov.rr.setrabes.dao.FuncionarioDao.pesquisaFuncionarios(FuncionarioDao.java:122)

Estou usando JSF 1.2, tomcat6, richfaces3.3.3.

Agradeço a Ajuda.

[quote=lgweb]de uma olhada no

this.funcionario.getNome();

se ele naum esta retornando null,parece que naum a nada errado com o normalize.[/quote]

Troque

    normalizar(nome);  

por

    if (nome != null) 
        nome = normalizar (nome); 

[quote=entanglement]Troque

    normalizar(nome);  

por

if (nome != null) nome = normalizar (nome); [/quote]

Olá entanglement, boa tarde.

Obrigado por responder. Vejo que essa dúvida é pouco comum no fórum… acho q é pq eu sou iniciante, estou pegando esta surra… mas nao tenho vergonha de perguntar heheheheh
:smiley:
Mano, fiz a alteração que vc sugeriu, e ele não deu mais a exception, embora tb não está fazendo a pesquisa pelo nome… eu digito o nome, e ele não me retorna nenhum resultado… os outros campos de pesquisa estão funcionando perfeitamente…
O que pode ser??
Agradeço a ajuda…

Por algum motivo - e aí é você que tem de descobrir - você não preencheu o campo “nome” no objeto funcionario.
O LGWeb ( http://www.guj.com.br/posts/list/215057.java#1096260 ) já lhe cantou a bola desde o começo, já de manhã cedo, você tem de ir atrás disso.

[quote=entanglement]Por algum motivo - e aí é você que tem de descobrir - você não preencheu o campo “nome” no objeto funcionario.
O LGWeb ( http://www.guj.com.br/posts/list/215057.java#1096260 ) já lhe cantou a bola desde o começo, já de manhã cedo, você tem de ir atrás disso. [/quote]

Blz. Só uma correção: eu tinha dito que ele não estava pesquisando pelo nome, mas está!! o problema é que se eu colocar o nome com acento, ele não encontra, mesmo que esse registro esteja no banco.
Valeu pela ajuda. Vou dar uma estudada por aqui.

Flws.