Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/09/2010, 09:34
cristianll
 
Fecha de Ingreso: octubre-2009
Mensajes: 9
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con NullPointerException

Hola a todos, tengo un problema con este método, tiene que ir verificando las fechas que se ingresan con la de hoy, entre ellas, y que una búsqueda retorne más de 3 objetos, si aparece error me tiene que devolver que hubo error, sino el objeto entero:
Código:
	public DTOTrabajadorYRol ingresarVigencia(Date fechaInicioRol, Date fechaFinRol){   //inicio metodo ingresarVigencia
            DTOTrabajadorYRol dtoTrabajadorYRol = new DTOTrabajadorYRol();
            boolean valor = false;
            Calendar cal = new GregorianCalendar();

            //FECHA INICIO MENOR FECHA HOY
            if(valor == false){
            int year = cal.get(Calendar.YEAR);     //devuelve el anio corriente del sistema
            int month = cal.get(Calendar.MONTH);      //devuelve el mes actual cooriende del sistema
            int day = cal.get(Calendar.DAY_OF_MONTH);     //devuelve el dia actual corriente del sistema
                if(fechaInicioRol.getYear() <= year){    //inicio if1
                 if(fechaInicioRol.getMonth() < month){    //inicio if2
                   dtoTrabajadorYRol.setHayError("FIFH");
                   valor = true;
                 }     //fin if2
                if((fechaInicioRol.getMonth() == month) && (fechaInicioRol.getDate() < day)){    //inicio if3
                   dtoTrabajadorYRol.setHayError("FIFH");
                   valor = true;
                }   // fin if3
                }    // fin if1
            }   //FECHA INICIO MENOR FECHA HOY

               //FECHA INICIO MAYOR FECHA FIN
            if(valor == false){   //inicio if
                if(fechaInicioRol.after(fechaFinRol)){   //inicio if
                        dtoTrabajadorYRol.setHayError("FIFF");
                        valor = true;
                }    //fin if
            }   //fin if
               //FECHA INICIO MAYOR FECHA FIN

            ArrayList<Object> trabajadoresDisponibles = new ArrayList<Object>();

               //MENOS DE 3 TRABAJADORES
            if(valor == false){
            Expresion criterioVigencia = FachadaPersistencia.getInstance().crearCriterio("fechaFinRol", "<", fechaInicioRol);
            ArrayList<Object> trabajadoresRol1 = new ArrayList<Object>();
            trabajadoresRol1 = FachadaPersistencia.getInstance().buscar("TrabajadorRol", criterioVigencia);
            for( int m = 0; m < trabajadoresRol1.size(); m++){   //inicio for
                trabajadoresDisponibles.add(((TrabajadorRol)trabajadoresRol1.get(m)).getTrabajador());
            }    //fin for
            if(trabajadoresDisponibles.size() < 3){   //inicio if
                dtoTrabajadorYRol.setHayError("TM3");  // no hay por lo menos 3 trabajadores disponibles
                valor = true;
            }   //fin if
            }   //fin if
               //MENOS DE 3 TRABAJADORES

               //RETORNA LOS TRABAJADORES
            if(valor == false){
            Expresion criterio = (Criterio) FachadaPersistencia.getInstance().crearCriterio("codigoRol", ">", 0);
            ArrayList<Object> roles = new ArrayList<Object>();
            roles = FachadaPersistencia.getInstance().buscar("Rol", criterio);
            for(Object rol : roles){      //inicio for1
                DTORol dtoRol = new DTORol();
                dtoRol.setCodigoRol(((Rol)rol).getCodigoRol());
                dtoRol.setNombreRol(((Rol)rol).getNombreRol());
                dtoTrabajadorYRol.setDTORol(dtoRol);
            } //    fin for1
            for(int i = 0; i < trabajadoresDisponibles.size(); i++){        //inicio for2
                String nombre = ((Trabajador)trabajadoresDisponibles.get(i)).getNombre();
                String apellido = ((Trabajador)trabajadoresDisponibles.get(i)).getApellido();
                int legajo = ((Trabajador)trabajadoresDisponibles.get(i)).getLegajo();
                ArrayList<Trabajo> trabajos = ((Trabajador)trabajadoresDisponibles.get(i)).getTrabajo();
                DTOTrabajador dtoTrabajador = new DTOTrabajador();
                dtoTrabajador.setApellido(apellido);
                dtoTrabajador.setLegajo(legajo);
                dtoTrabajador.setNombre(nombre);
                for(int k = 0; i < trabajos.size(); k++){
                    dtoTrabajador.setNombreTrabajo(trabajos.get(i).getNombreTrabajo());
                }
                dtoTrabajadorYRol.setDTOTrabajador(dtoTrabajador);
            }    //fin for 2
            this.fechaFinRol = fechaFinRol;
            this.fechaInicioRol = fechaInicioRol;
            dtoTrabajadorYRol.setFechaInicioRol(this.fechaInicioRol);
            dtoTrabajadorYRol.setFechaFinRol(this.fechaFinRol);
            this.dtoTrabajadorYRol1 = dtoTrabajadorYRol;
            }
                //RETORNA LOS TRABAJADORES
            return dtoTrabajadorYRol;
	}   //fin metodo ingresarVigencia
Trato de probarlo y me tira el error de NullPointerException, creería que sería en el retorno de dtoTrabajadorYRol? hace muy poco que estoy con Java y no logro ver bien en donde está el problema.
Muchas gracias.
Saludos.