[RESOLVIDO]Vraptor + Checkbox problema estranho

Boa tarde, estou com o seguinte erro:
null pointer exception +

Só da este erro se o checkbox não está marcado… se não ele vem com o value do html, que é um S no caso.

segue a classe:

	public String getFlag_alt() {
		return flag_alt.toUpperCase();
	}
	public void setFlag_alt(String flag_alt) {
		if (flag_alt == null || flag_alt.equals(""))
			flag_alt = "N";
		this.flag_alt = flag_alt.toUpperCase();
	}

segue conteudo na jsp:

Alterar: <INPUT  <c:if test="${vendedor.flag_alt == 'S'}">checked="checked"</c:if> value="S" TYPE="checkbox" NAME="vendedor.flag_alt">

ele da o erro logo depois do submit…

se flag_alt é null, o .toUpperCase() dá NullPointerException (provavelmente ele tá no caused by da sua exception…

mude seu getter para:

public String getFlag_alt() {  
    return flag == null ? null : flag_alt.toUpperCase();  
}  

Não era melhor esse Flag_alt ser um boolean?

Não usei boolean pois estou fazendo o modulo web de um sistema antigo… e eles usam varchar S ou N no BD… eu poderia mesmo ter usado boolean, mas achei chato ficar tratando…
acredito que não esteja muito errado…
de qualquer forma… não entendi porque o erro estava no get…

pensei que logo após o submit do formulário o vraptor executase o set dos elementos… e lá eu estava tratando.

bem, sua dica resolveu meu problema… obrigado!

[quote=clarel.filho]Não usei boolean pois estou fazendo o modulo web de um sistema antigo… e eles usam varchar S ou N no BD… eu poderia mesmo ter usado boolean, mas achei chato ficar tratando…
acredito que não esteja muito errado…
de qualquer forma… não entendi porque o erro estava no get…

pensei que logo após o submit do formulário o vraptor executase o set dos elementos… e lá eu estava tratando.

bem, sua dica resolveu meu problema… obrigado![/quote]

Só para complementar, o vraptor não setou porque a flag não foi postada. Quando você desmarca uma checkbox e em seguida dá o submit, a checkbox desmarcada é como se não existisse. Até mesmo se você fosse pegar o valor usando diretamente o Request, o vendedor.flag_alt estaria nulo.