Problemas com tipos

Bom dia a todos,

Estou fazendo uma query que é um update e na minha clausula “where” passo um “código”, no tabela esse código é do tipo “int”.
Na minha Action (Servlet) tenho que receber esse código, mas ele esta vindo como “null” com o seguinte erro abaixo:

java.lang.NumberFormatException: null
	java.lang.Integer.parseInt(Unknown Source)
	java.lang.Integer.parseInt(Unknown Source)

Segue uma parte do meu código do DAO onde pego esse código:

pstm = con.prepareStatement(" UPDATE tblrede SET " +
			      								" desc_rede = ?, " +
			      								" uf = ?, " +
			      								" cidade = ?, " +
			      								" fone1 = ?, " +
			      								" contato1 = ?, " +
			      								" email1 = ?, " +
			      								" fone2 = ?, " +
			      								" contato2 = ?, " +
			      								" email2 = ?, " +
			      								" razao = ?, " +
			      								" insc_est = ?, " +
			      								" ender = ?, " +
			      								" cnpj = ?, " +
			      								" banco = ?, " +
			      								" agencia = ?, " +
			      								" conta = ?, " +
			      								" cadfor = ?, " +
			      								" contrato_social = ?, " +
			      								" ender_prom = ?, " +
			      								" cod_gr = ?, " +
			      								" cod_gc = ?, " +
			      								" is_ativo = ?, " +
			      								" data_status = ?, " +
			      								" obs = ? " +	      								
			      								" WHERE cod_rede = ?");

pstm.setInt(25,Integer.parseInt(redeForm.getCodigo()));

Segue uma parte do código da Action.

cadRedeVO.setCodigo(Integer.parseInt(redeForm.getCodigo()));

Agradeço desde já a ajuda de vcs,
Vitor

Esse erro está acontecendo porque você está tentando fazer um parse em um valor null

cadRedeVO.setCodigo(Integer.parseInt(redeForm.getCodigo())); 

esse redeForm.getCodigo() é do tipo String?

de uma verificada… se esse valor não está vindo null

haamilton,

Realmente ele esta vindo “null”, mas quando coloco um código fixo na query, ele acontece a mesma coisa, isso q não consigo entender.
Com certeza eu devo estar dando algum vacilo, mas confesso q ainda não consegui enxergar.

O redeForm.getCodigo() é do tipo String, mas o q vem do update é do tipo “int”, provavelmente o problema deve estar aí, mas não consegui resolver ainda.
No meu Bean o codigo é do tipo String e no meu Form é do tipo String.

Mais uma vez obrigado.

você deve estar colocando um valor fixo na query mas não deve ter suprimido/comentado a linha pmst.setInt. Por isso o erro vai continuar ocorrendo. Você pode fazer 3 coisas:

  1. Deixar o método lançar um erro, pois, afinal, um erro no preenchimento das variáveis realmente aconteceu;
  2. Lançar um erro, mas fazer com que o mesmo seja tratado. Ou seja, lançar um erro que realmente dê o motivo do erro;
  3. impedir a variável de ser nula (zerando a mesma se for um nulo).

Otavio,

Fiz o comentário da linha que vc falou do pmst.setInt, mas mesmo assim continua dando o seguinte erro abaixo:

exception 

javax.servlet.ServletException: null
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

java.lang.NumberFormatException: null
	java.lang.Integer.parseInt(Unknown Source)
	java.lang.Integer.parseInt(Unknown Source)
	raa.ebt.action.CadRedeAction.executar(Unknown Source)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Não estou conseguindo impedir a variável de ser nula.
Devo estar dando algum vacilo que ainda não enxerguei.

Mais uma vez obrigado.