Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/11/2009, 09:20
rosemary22
 
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