Foros del Web » Programación para mayores de 30 ;) » Java »

Error NullPointerException

Estas en el tema de Error NullPointerException en el foro de Java en Foros del Web. Buenas Necesito que me ayuden_!! El error surgio cuando aumente la condicion de que tb me muestren la fechafin como null, esta clase realiza query ...
  #1 (permalink)  
Antiguo 30/11/2009, 09:20
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Error NullPointerException

Buenas Necesito que me ayuden_!!
El error surgio cuando aumente la condicion de que tb me muestren la fechafin como null,
esta clase realiza query para luego enviar los datos a las respetivas clases encapsulados y luego me pinte un grafico

Cita:

LECTOR
public class Lector
{ HashMap hmdatos;
String resultado;
private ArrayList ListaIncidencias;


public Lector()
{
hmdatos = new HashMap();
resultado = null;
ListaIncidencias = new ArrayList();
}

public ArrayList damedatos(String fecha, String fechafin,String nivel, String provincia)
{
BaseDeDatos bbdd = new BaseDeDatos();
Connection consolaSQL = bbdd.abreConexion();
try
{
String query=(new StringBuilder())
.append("select distinct suceso.suc_codigo,suceso.suc_version,suceso.suc_fe chahora_ini,suceso.suc_fechahora_fin, dd_tipos.ddtip_codigo,dd_causas.ddcau_descripcion, punto.pto_pk,\n")
.append("dd_provincias.ddprov_provincia, dd_nivel_servicio.ddnse_nivel_servicio, dd_carreteras.ddcar_carretera\n")
.append("from suceso, dd_nivel_servicio,causa, dd_causas, localizacion, punto, dd_provincias,dd_tramos, dd_carreteras, dd_sucesos, dd_tipos\n")
.append("where suceso.suc_fechahora_ini>= TO_DATE ('")
.append(fecha).append(" 00:00:00', 'DD-MON-YYYY HH24:MI:SS')-1\n")
.append("and (suceso.suc_fechahora_fin< TO_DATE ('")
.append(fechafin).append(" 23:59:59','DD-MON-YYYY HH24:MI:SS')+1\n")
.append("or suceso.suc_fechahora_fin is null)\n")
.append("and suceso.suc_suceso=dd_sucesos.ddsuc_codigo\n")
.append("and suceso.suc_tipo=dd_sucesos.ddsuc_tipo\n")
.append("and suceso.suc_categoria=dd_sucesos.ddsuc_categoria\n" )
.append("and suceso.suc_dd_version=dd_sucesos.ddsuc_version\n")
.append("and dd_sucesos.ddsuc_tipo=dd_tipos.ddtip_codigo\n")
.append("and dd_sucesos.ddsuc_version=dd_tipos.ddtip_version\n" )
.append("and dd_sucesos.ddsuc_categoria=dd_tipos.ddtip_categori a\n")
.append("and dd_tipos.ddtip_categoria='INC'\n")
.append("and dd_tipos.ddtip_codigo='REN'\n")
.append("and suceso.suc_nivel_servicio=dd_nivel_servicio.ddnse_ codigo\n")
.append("and dd_nivel_servicio.ddnse_nivel_servicio in('"+nivel+"')\n")
.append("and suceso.suc_codigo=causa.cau_suc_codigo\n")
.append("and suceso.suc_version=causa.cau_suc_version\n")
.append("and causa.cau_causa=dd_causas.ddcau_codigo\n")
.append("and causa.cau_dd_version=dd_causas.ddcau_version\n")
.append("and suceso.suc_localizacion=localizacion.loc_codigo\n" )
.append("and punto.pto_loc_codigo=localizacion.loc_codigo\n")
.append("and punto.pto_provincia=dd_provincias.ddprov_id\n")
.append("and dd_provincias.ddprov_provincia IN('"+provincia+"')\n")
.append("and punto.pto_tram_carretera=dd_tramos.ddtram_id\n")
.append("and dd_tramos.ddtram_carretera=dd_carreteras.ddcar_cod igo\n")
.append("UNION ALL\n")
.append("select distinct h_suceso.suc_codigo,h_suceso.suc_version,h_suceso. suc_fechahora_ini,h_suceso.suc_fechahora_fin,dd_ti pos.ddtip_codigo,dd_causas.ddcau_descripcion,h_pun to.pto_pk,\n")
.append("dd_provincias.ddprov_provincia, dd_nivel_servicio.ddnse_nivel_servicio, h_dd_carreteras.ddcar_carretera\n")
.append("from h_suceso, dd_nivel_servicio, h_causa, dd_causas, h_localizacion, h_punto, dd_provincias, h_dd_tramos, h_dd_carreteras,dd_sucesos,dd_tipos\n")
.append("where h_suceso.suc_fechahora_ini>=TO_DATE ('")
.append(fecha).append(" 00:00:00', 'DD-MON-YYYY HH24:MI:SS')-1\n")
.append("and (h_suceso.suc_fechahora_fin< TO_DATE ('")
.append(fechafin).append(" 23:59:59','DD-MON-YYYY HH24:MI:SS')+1\n")
.append("or h_suceso.suc_fechahora_fin is null)\n")
.append("and h_suceso.suc_suceso=dd_sucesos.ddsuc_codigo\n")
.append("and h_suceso.suc_tipo=dd_sucesos.ddsuc_tipo\n")
.append("and h_suceso.suc_categoria=dd_sucesos.ddsuc_categoria\ n")
.append("and h_suceso.suc_dd_version=dd_sucesos.ddsuc_version\n ")
.append("and dd_sucesos.ddsuc_tipo=dd_tipos.ddtip_codigo\n")
.append("and dd_sucesos.ddsuc_version=dd_tipos.ddtip_version\n" )
.append("and dd_sucesos.ddsuc_categoria=dd_tipos.ddtip_categori a\n")
.append("and dd_tipos.ddtip_categoria='INC'\n")
.append("and dd_tipos.ddtip_codigo='REN'\n")
.append("and h_suceso.suc_nivel_servicio=dd_nivel_servicio.ddns e_codigo\n")
.append("and dd_nivel_servicio.ddnse_nivel_servicio in('"+nivel+"')\n")
.append("and h_suceso.suc_codigo=h_causa.cau_suc_codigo\n")
.append("and h_suceso.suc_version=h_causa.cau_suc_version\n")
.append("and h_causa.cau_causa=dd_causas.ddcau_codigo\n")
.append("and h_causa.cau_dd_version=dd_causas.ddcau_version\n")
.append("and h_suceso.suc_localizacion=h_localizacion.loc_codig o\n")
.append("and h_punto.pto_loc_codigo=h_localizacion.loc_codigo\n ")
.append("and h_punto.pto_provincia=dd_provincias.ddprov_id\n")
.append("and dd_provincias.ddprov_provincia IN('"+provincia+"')\n")
.append("and h_punto.pto_tram_carretera=h_dd_tramos.ddtram_id\n ")
.append("and h_dd_tramos.ddtram_carretera=h_dd_carreteras.ddcar _codigo\n")
.append("order by 1,2").toString();

System.out.println(query);
System.out.println();
PreparedStatement pstmt = consolaSQL.prepareStatement(query);
Suceso suceso;
for(ResultSet resultado = pstmt.executeQuery(); resultado.next(); ListaIncidencias.add(suceso))
{
suceso = new Suceso();
suceso.setSuc_codigo(new Integer(resultado.getInt("suc_codigo")));
suceso.setSuc_version(new Integer(resultado.getInt("suc_version")));
new GregorianCalendar();
Calendar calendario = GregorianCalendar.getInstance();
suceso.setInicio(resultado.getTimestamp("suc_fecha hora_ini"));
suceso.setModificacion(resultado.getTimestamp("suc _fechahora_fin"));
new GregorianCalendar();
Calendar fechainicio = GregorianCalendar.getInstance();
new GregorianCalendar();
Calendar fechamodificacion = GregorianCalendar.getInstance();
fechainicio.setTimeInMillis(resultado.getTimestamp ("suc_fechahora_ini").getTime());
fechamodificacion.setTimeInMillis(resultado.getTim estamp("suc_fechahora_fin").getTime());
suceso.setFechainicio(fechainicio);
suceso.setFechamodificacion(fechamodificacion);
suceso.setCausa(resultado.getString("ddcau_descrip cion"));
suceso.setTipo(resultado.getString("ddtip_codigo") );
suceso.setCarretera(resultado.getString("ddcar_car retera"));
suceso.setPk(new Integer(resultado.getInt("pto_pk")));
suceso.setProvincia(resultado.getString("ddprov_pr ovincia"));
suceso.setNivel(resultado.getString("ddnse_nivel_s ervicio"));
System.out.print(query);
}

consolaSQL.close();
}
catch(SQLException e)
{
System.err.println("Tenemos un problemita en la select :)! ");
}
bbdd.cierraConexion();
return ListaIncidencias;
}

public ArrayList acomodar(ArrayList ListaIncidenciaTratar)
{ ArrayList ListaNuevo=new ArrayList();
int i=0;
int km=0;

for( i=0;i<ListaIncidenciaTratar.size();i++)
{
Suceso inc1=(Suceso)ListaIncidenciaTratar.get(i);
if((i+1)==ListaIncidenciaTratar.size()){
km=Math.abs(inc1.getPk().intValue()-inc1.getPk().intValue());
inc1.setKm(km);
inc1.setPk_inicial(inc1.getPk());
inc1.setPk_final(inc1.getPk());
break;
}
Suceso inc2=(Suceso)ListaIncidenciaTratar.get(i+1);
if (inc1.getSuc_codigo().equals(inc2.getSuc_codigo()) && inc1.getSuc_version().equals(inc2.getSuc_version() ))
{
km=Math.abs(inc1.getPk().intValue()-inc2.getPk().intValue());
inc1.setKm(km);
inc1.setPk_inicial(inc1.getPk());
inc1.setPk_final(inc2.getPk());
}
else
{
km=Math.abs(inc1.getPk().intValue()-inc1.getPk().intValue());
inc1.setKm(km);
inc1.setPk_inicial(inc1.getPk());
inc1.setPk_final(inc1.getPk());
i=i-1;

}

ListaNuevo.add(inc1);

if((i+1)==ListaIncidenciaTratar.size())
break;
i=i+1;
}
return ListaNuevo;
}

}
Un saludo
Muchas GraCIAS
  #2 (permalink)  
Antiguo 30/11/2009, 12:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Error NullPointerException

tienes q copiar el error, para ver cual es el objeto que te da el nullpoiter, esta excepción siempre la da cuando un objeto no recibe nada y es necesario que maneje algún dato para poder compilar completo
  #3 (permalink)  
Antiguo 01/12/2009, 02:19
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

Lo que veo es algo extraño... tienes arriba resultado como String y luego abajo lo pones como ResultSet ¿? ¿? ¿?
  #4 (permalink)  
Antiguo 01/12/2009, 02:44
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

HOLA
Espero explicarme bien, la excepcion q salta es en la linea roja, el codigo funciona bien cuando no filtro x fechafin null , llega hasta el codigo 179586 , ya que encuentra el campo fecha fin como null y ahi es donde casca, esto sonlos datos que la query muestra, e comprobados que todos los datos llegan vacios a retenciones cuando fechafin es null, como puedo hacer para que esto suceda? ....necesito que trate todos los datos siendo fechafin como null o no ( clase lector el codigo esta en el msj anterior trabaja con retenciones)
===(lo del String resultado ya lo corregi lo e quitado no afecta en nada, estaba de mas==

CODIGO FINICIO FECHAFIN PK
179582 30/11/2009 30/11/2009 16
179582 30/11/2009 30/11/2009 13
179586 30/11/2009 30/11/2009 9
179586 30/11/2009 30/11/2009 7
179590 30/11/2009 NULL 18
179590 30/11/2009 NUL 17,5

179592 30/11/2009 30/11/2009 10 MADRID AMARILLO A-6
Cita:
RETENCIONES

public class Retenciones extends HttpServlet
{
public Retenciones()
{
}
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException, NullPointerException
{ String SO = "Desconocido";
String browser = "Desconocido";
Datos dt = new Datos();
ServletOutputStream salida = res.getOutputStream();
res.setContentType("text/html");
String userAgent = req.getHeader("User-Agent");
if(userAgent.contains("Windows"))
SO = "Windows";
if(userAgent.contains("Linux"))
SO = "Linux";
if(userAgent.contains("Mac"))
SO = "Mac OS";
if(userAgent.contains("MSIE"))
browser = "IE";
if(userAgent.contains("Opera"))
browser = "Opera";
if(userAgent.contains("Firefox"))
browser = "Firefox";
if(userAgent.contains("Safari"))
browser = "Safari";
String parametros = req.getParameter("parametros");
try{
String campos[] = parametros.split("\\|");
String dias = campos[0];
String fecha = campos[1].replaceAll("-",":");
String provincia=campos[2];
provincia=provincia.replace(",", "','");
String nivel=campos[3];
nivel=nivel.replace(",", "','");
HashMap datos = dt.damedatos(fecha, dias, browser, provincia,nivel);
String camposFecha[] = fecha.split("\\ ");
fecha = (new StringBuilder()).append(camposFecha[0]).append(" ").append(camposFecha[1]).append(" ").append(camposFecha[2]).append(" ").append(camposFecha[3]).append(" ").append(camposFecha[4]).toString();
String x_labels = "";
String labels = "00:00,00:10,00:20,00:30,00:40,00:50," +
"01:00,01:10,01:20,01:30,01:40,01:50," +
"02:00,02:10,02:20,02:30,02:40,02:50," +
"03:00,03:10,03:20,03:30,03:40,03:50," +
"04:00,04:10,04:20,04:30,04:40,04:50," +
"05:00,05:10,05:20,05:30,05:40,05:50," +
"06:00,06:10,06:20,06:30,06:40,06:50," +
"07:00,07:10,07:20,07:30,07:40,07:50," +
"08:00,08:10,08:20,08:30,08:40,08:50," +
"09:00,09:10,09:20,09:30,09:40,09:50," +
"10:00,10:10,10:20,10:30,10:40,10:50," +
"11:00,11:10,11:20,11:30,11:40,11:50," +
"12:00,12:10,12:20,12:30,12:40,12:50," +
"13:00,13:10,13:20,13:30,13:40,13:50," +
"14:00,14:10,14:20,14:30,14:40,14:50," +
"15:00,15:10,15:20,15:30,15:40,15:50," +
"16:00,16:10,16:20,16:30,16:40,16:50," +
"17:00,17:10,17:20,17:30,17:40,17:50," +
"18:00,18:10,18:20,18:30,18:40,18:50," +
"19:00,19:10,19:20,19:30,19:40,19:50," +
"20:00,20:10,20:20,20:30,20:40,20:50," +
"21:00,21:10,21:20,21:30,21:40,21:50," +
"22:00,22:10,22:20,22:30,22:40,22:50," +
"23:00,23:10,23:20,23:30,23:40,23:50";
x_labels = labels;
for(int i = 1; i <Integer.parseInt(dias); i++)
x_labels = (new StringBuilder()).append(x_labels).append(",").appe nd(labels).toString();
salida.println((new StringBuilder())
.append("&tool_tip=#x_label#<br>CAUSA:#key#<br>#va l#km<br>Carreteras:<br>#tip#&")
.append("&x_label_style=10,#0101DF,2,")
.append(6 * Integer.parseInt(dias))//multiplica 6 elementos de x_labels x los dias
.append(",#FFFFFF& \n")
.append("&y_label_style=10,#0101DF,2,")
.append(6 * Integer.parseInt(dias))
.append(",#C1CFDD&\n")
.append("&y_ticks=2,5,10& \n")//2.- espacio de la linea al numero, 5.- tamaño del guion cerca d ela linea. 10.- q vaya la hora de 10 en 10
.append("&area_hollow=2,3,25,#000000,'Circulacion' ,12,#000000& \n")
.append("&line=2,#0174DF,CIRCULACION,10,4&\n")
.append("&line_2=3,#8A0808,ACCIDENTE,10,4&\n")
.append("&line_3=3,#088A85,TOTAL,10,4&\n")
.append("&y_legend=Km,13,#0101DF&\n")
.append("&x_legend=Tiempo (Horas),13,#0101DF&\n")
.append("&x_tick_size=20\"\n")
.append("&x_axis_steps=20\n")
.append("&y_min=0& \n")
.append("&y_max=").append(datos.get("max"))//los kilometros de y
.append("&\n")
.append("&x_labels=").append(x_labels).append(",00 :00& \n")
.append("&values=").append(datos.get("circulacion" )).append("&\n")
.append("&values_2=").append(datos.get("accidente" )).append("&\n")
.append("&values_3=").append(datos.get("total")).a ppend("&\n")
.append("&tool_tips_set=").append(datos.get("dcirc ulacion")).append("&\n")
.append("&tool_tips_set_2=").append(datos.get("dac cidente")).append("&\n")
.append("&tool_tips_set_3=").append(datos.get("dto tal")).append("&\n")
.append("&x_axis_steps=30&\n")
.append("&y_label_steps=20&\n")
.append("&x_offset=true&\n")
.append("&inner_background=#C1CFDD,#FFFFFF,70&")
.append("&x_axis_colour=#B0C4D9&\n")
.append("&x_grid_colour=#FFFFFF&")
.append("&y_grid_colour=#FFFFFF&")
.append("&y_axis_colour=#B0C4D9&\n")
.append("&bg_colour=#cadaef&").toString());

}catch(Exception e){
System.out.println("no pinta sssss :(");
System.err.print(e.getMessage());
System.err.println("error"+e.getClass());
}

}
Muchas Gracias

Última edición por rosemary22; 01/12/2009 a las 03:15
  #5 (permalink)  
Antiguo 01/12/2009, 03:33
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

cuando un elemento es null y lo recuperas tal cual tienes que hacer una comprobacion, y si es null deberías convertirlo a algo no null, por ejemplo "" para un String o 00/00/000 para un date.
  #6 (permalink)  
Antiguo 01/12/2009, 05:09
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

Hola
lo e comparado de la sgt manera en la clase lector, para que solo me pinte el null pero se salta la condicion que esta resaltada en rojo , cuando solo le hago print sin el if, me pinta como null por eso lo comparo, pero no llega a pasar por el if , x q sucede esto?? como puedo comparar el campo timestamp con null?

for(ResultSet resultado = pstmt.executeQuery(); resultado.next(); ListaIncidencias.add(suceso))
{
suceso = new Suceso();
suceso.setSuc_codigo(new Integer(resultado.getInt("suc_codigo")));
suceso.setSuc_version(new Integer(resultado.getInt("suc_version")));
new GregorianCalendar();
Calendar calendario = GregorianCalendar.getInstance();
suceso.setInicio(resultado.getTimestamp("suc_fecha hora_ini"));

//System.out.print("resultado :"+resultado.getTimestamp("suc_fechahora_fin")) ; pinta null

if((resultado.getTimestamp("suc_fechahora_fin").to Strin()).equals(null))
{
System.out.println("aqui null");
}

//suceso.setModificacion(resultado.getTimestamp("suc _fechahora_fin"));
new GregorianCalendar();
Calendar fechainicio = GregorianCalendar.getInstance();
new GregorianCalendar();
Calendar fechamodificacion = GregorianCalendar.getInstance()

Última edición por rosemary22; 01/12/2009 a las 05:54
  #7 (permalink)  
Antiguo 01/12/2009, 06:32
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

En todo caso sería así:

if(resultado.getTimestamp("suc_fechahora_fin").toS tring().equals(null))
{
System.out.println("aqui null");
}

Si esto falla puedes probar esto otro.

if(resultado.getTimestamp("suc_fechahora_fin") == null)
{
System.out.println("aqui null");
}

Nota: el toString() lo está poniendo espliteado no sé por qué, es todo junto.
  #8 (permalink)  
Antiguo 01/12/2009, 08:31
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

Buenas
Muchas Gracias , A hora e conseguido que considere los valores nulL en suc_fechahora_fin de la sgt manera en la clase lector
Cita:
for(ResultSet resultado = pstmt.executeQuery(); resultado.next(); ListaIncidencias.add(suceso))
{
suceso = new Suceso();
suceso.setSuc_codigo(new Integer(resultado.getInt("suc_codigo")));
suceso.setSuc_version(new Integer(resultado.getInt("suc_version")));
new GregorianCalendar();
Calendar calendario = GregorianCalendar.getInstance();
//suceso.setInicio(resultado.getTimestamp("suc_fecha hora_ini"));
//System.out.print("resultado.getTimestamp(\"suc_fec hahora_fin\")"+resultado.getTimestamp("suc_fechaho ra_fin"));
suceso.setInicio(resultado.getTimestamp("suc_fecha hora_ini"));
if(resultado.getTimestamp("suc_fechahora_fin")!=nu ll) {
suceso.setModificacion(resultado.getTimestamp("suc _fechahora_fin"));}
new GregorianCalendar();
Calendar fechainicio = GregorianCalendar.getInstance();
new GregorianCalendar();
Calendar fechamodificacion = GregorianCalendar.getInstance();
fechainicio.setTimeInMillis(resultado.getTimestamp ("suc_fechahora_ini").getTime());
suceso.setFechainicio(fechainicio);
if(resultado.getTimestamp("suc_fechahora_fin")!=nu ll)
{
fechamodificacion.setTimeInMillis(resultado.getTim estamp("suc_fechahora_fin").getTime());
suceso.setFechamodificacion(fechamodificacion);
}

suceso.setCausa(resultado.getString("ddcau_descrip cion"));
suceso.setTipo(resultado.getString("ddtip_codigo") );
suceso.setCarretera(resultado.getString("ddcar_car retera"));
suceso.setPk(new Integer(resultado.getInt("pto_pk")));
suceso.setProvincia(resultado.getString("ddprov_pr ovincia"));
suceso.setNivel(resultado.getString("ddnse_nivel_s ervicio"));
System.out.print(query);

System.out.println("Codigo"+suceso.getSuc_codigo() );
System.out.println("Inicio"+suceso.getInicio());
System.out.println("Modificacion"+suceso.getModifi cacion());

}

consolaSQL.close();
}
Pero ahora el metodo calculakm me retorna el valor resultado como "0", me e dado cuenta que no realiza la condicion if
(lo resaltado en rojo) en la parte cuando trabaja con fechamodificacion, si le quito eso funciona, pero necesito realizar la comparacion
y por lo tanto me sigue mostrar la excepcion NULLPOINTEREXCEPTION
Cita:
SUCESO

public Calendar getFechainicio()
{
return fechainicio;
}

public void setFechainicio(Calendar fechainicio)
{
this.fechainicio = fechainicio;
}

public Calendar getFechamodificacion()
{
return fechamodificacion;
}

public void setFechamodificacion(Calendar fechamodificacion)
{
this.fechamodificacion = fechamodificacion;

}

public int getKm()
{
return km;
}

public void setKm(int km)
{
this.km = km;
}

public Timestamp getInicio()
{
return inicio;
}

public void setInicio(Timestamp inicio)
{
this.inicio = inicio;
}

public Timestamp getModificacion()
{
return modificacion;
}

public void setModificacion(Timestamp modificacion)
{
this.modificacion = modificacion;
}

public String getCausa()
{
return causa;
}

public void setCausa(String causa)
{
this.causa = causa;
}

public Integer getPk_inicial()
{
return pk_inicial;
}

public void setPk_inicial(Integer pk_inicial)
{
this.pk_inicial = pk_inicial;
}

public Integer getPk_final()
{
return pk_final;
}

public void setPk_final(Integer pk_final)
{
this.pk_final = pk_final;
}

public String getNivel()
{
return nivel;
}

public void setNivel(String nivel)
{
this.nivel = nivel;
}

public String getProvincia()
{
return provincia;
}

public void setProvincia(String provincia)
{
this.provincia = provincia;
}

public void setPk(Integer pk) {
this.pk = pk;
}

public Integer getPk() {
return pk;
}

public void setCarretera(String carretera) {
this.carretera = carretera;
}

public String getCarretera() {
return carretera;
}

public int calculakm(String causa, Calendar fechaPedida)
{
int resultado = 0;
if((causa.equals(this.causa) || causa.equals("TODAS"))&& (fechainicio.before(fechaPedida) || fechainicio.equals(fechaPedida)) && (fechamodificacion.after(fechaPedida)|| fechamodificacion.equals(null)))
{ resultado =this.km;
if(resultado > 100)
resultado= 100;
}


return resultado;
}


public void setSuc_codigo(Integer suc_codigo) {
this.suc_codigo = suc_codigo;
}

public Integer getSuc_codigo() {
return suc_codigo;
}

public void setSuc_version(Integer suc_version) {
this.suc_version = suc_version;
}

public Integer getSuc_version() {
return suc_version;
}

public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getTipo() {
return tipo;
}
Por favor le agradeceria que me ayuden_!!!!

Última edición por rosemary22; 01/12/2009 a las 09:19
  #9 (permalink)  
Antiguo 01/12/2009, 09:23
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

Otra vez lo mismo
---
fechamodificacion.equals(null)) ===> fechamodificacion == null // o fechamodificacion != null
----

Según como necesites controlarlo
  #10 (permalink)  
Antiguo 01/12/2009, 09:37
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

Lo e vuelto a comparar para hallar los kilometros, e hecho el cambio del equals en la clase suceso como
Cita:
public int calculakm(String causa, Calendar fechaPedida)
{
int resultado = 0;
if((causa.equals(this.causa) || causa.equals("TODAS"))&& (fechainicio.before(fechaPedida) || fechainicio.equals(fechaPedida)) && (fechamodificacion.after(fechaPedida)||fechamodifi cacion.equals(null)))
{ resultado =this.km;
if(resultado > 100) resultado= 100;
}
return resultado;
}
sigue saliendo mismo error, el metodo devuelve resultado como "0", el error salta cuando uso fechamodificacion
:( ........
  #11 (permalink)  
Antiguo 01/12/2009, 09:39
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

repito, tienes un .equals(null) ahi dentro, quítalo y sustituyelo por == null. Y así con todos los .equal(null) que tengas en ese código.

Si aun así te sigue sin dar el resultado correcto por algun otro motivo, tendrás que ver si el || o el && son correctos en cada caso.
  #12 (permalink)  
Antiguo 01/12/2009, 09:46
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

ya lo e cambiado como == null , pero nada

:(, muchas gracias x tu ayuda!
  #13 (permalink)  
Antiguo 01/12/2009, 09:53
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

Pero si lo cambias por eso te sigue dando el nullpointer?

En q linea de codigo?
  #14 (permalink)  
Antiguo 01/12/2009, 09:55
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

Si me sigue dando el nullpointe :(
en el if del metodo calculakm(), le hecho un debug y se salta el if es por eso que me retorno resulado como 0, y e borrado la parte en que trabaja con fechamodificacion y asi si memuestra el resultado, pero no me vale x q tengoq hacer la comparacion de fechamodificacion

Cita:
java.lang.NullPointerException
at Suceso.calculakm(Suceso.java:154)
at Datos.damedatos(Datos.java:81)
at Retenciones.service(Retenciones.java:59)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:729)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
todo hace referencia hace metodo, y esto sucede desde que quiero pintar tb las fechahorafin nulas, antes no habia problema
  #15 (permalink)  
Antiguo 01/12/2009, 09:59
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

Pégame esta línea de código

at Suceso.calculakm(Suceso.java:154)

Es la línea 154 de la clase Suceso.java ... que es donde salta la excepción.

Si tienes el netbeans o el eclipse puedes ver perfectamente las líneas. Aparece marcado en la parte inferior cada vez que pinchas en una de ellas.
  #16 (permalink)  
Antiguo 01/12/2009, 10:02
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

Vale, la linea es la roja que pinta como te explicaba salta el error x el if :( del metodo calculakm
Cita:

public int calculakm(String causa, Calendar fechaPedida)
{
int resultado = 0;
if((causa.equals(this.causa) || causa.equals("TODAS"))&& (fechainicio.before(fechaPedida) || fechainicio.equals(fechaPedida)) && (fechamodificacion.after(fechaPedida)||fechamodifi cacion==null))
{ resultado =this.km;
if(resultado > 100)
resultado= 100;
}
return resultado;
}
gracias!
  #17 (permalink)  
Antiguo 01/12/2009, 11:08
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

int resultado = 0;
if (fechamodificacion == null) {
fechamodificacion = "";
}
if((causa.equals(this.causa) || causa.equals("TODAS"))&& (fechainicio.before(fechaPedida) || fechainicio.equals(fechaPedida)) && (fechamodificacion.after(fechaPedida)||fechamodifi cacion.equals(""))

Si te vuelve a dar un nullpointer ahí, malo, algún otro valor distinto debería ser null
  #18 (permalink)  
Antiguo 01/12/2009, 11:10
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

De todos modos creo que el null te daba pq la comprobacion de null la hacías después de una comprobación para fechamodificacion.after(fechaPedida). Si en ese caso fechaModificacion fuera null, saltaría el nullpointer antes de llegar a la comprobación final.
es decir:

(fechamodifi cacion==null) || fechamodificacion.after(fechaPedida))

Esto tb podría evitar el nullpointer
  #19 (permalink)  
Antiguo 02/12/2009, 05:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

Muchas Gracias funciono ! :D
primero compare fechamodificacio=null y luego fechamodificacion.after(fechapedida), como lo mencionastes en el mensaje anterior!

Un saludo
ross
  #20 (permalink)  
Antiguo 02/12/2009, 06:22
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error NullPointerException

xD ya era hora!
  #21 (permalink)  
Antiguo 03/12/2009, 06:49
 
Fecha de Ingreso: agosto-2005
Mensajes: 36
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Error NullPointerException

YA LO SOLUCIONE! :d

Última edición por rosemary22; 03/12/2009 a las 07:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:43.