Tengo la siguiente función la cual se supone que deberia funcionar bien, pero sin embargo me dice que la funcion boolean debe tener un return, cosa que está contemplada y tiene varios, no se cual es el fallo que estoy teniendo, ¿Podriais echarme una mano? Gracias.
Cita: public static boolean tieneRol(String dni_usuario, int rol){
if(rol==ROL_ACCESO_PUBLICO){
//Cualquiera puede acceder
return true;
}else{
Connection con = null;
PreparedStatement stmt = null;
ResultSet resultados = null;
if(rol==ROL_ACCESO_PUBLICO){
//Cualquiera puede acceder //Es administrador por lo que tiene acceso ilimitado
LOG.debug("El usuario '" + dni_usuario + "' SI tiene el rol necesario" + rol);
return true;
}
try{
con = getConexion();
String sql = SQL_SELECT_ROLES_USUARIO;
LOG.debug("Ejecutando sentencia: '" + sql + "'");
stmt = con.prepareStatement(sql);
stmt.setString(1,dni_usuario);
LOG.debug("dni '" + dni_usuario + "'");
resultados = stmt.executeQuery();
while(resultados.next()){
int Urol = resultados.getInt(1);
LOG.debug("Urol '" + Urol + "'");
if(Urol==ROL_ADMINISTRADOR){
//Cualquiera puede acceder //Es administrador por lo que tiene acceso ilimitado
LOG.debug("El usuario '" + dni_usuario + "' SI tiene el rol necesario" + rol);
return true;
}else{
if(Urol==rol){
//Tiene el rol necesario para entrar
LOG.debug("El usuario '" + dni_usuario + "' SI tiene el rol necesario" + rol);
return true;
}else{
LOG.debug("El usuario '" + dni_usuario + "' NO tiene el rol necesario" + rol);
return false;
}
}
}
} catch ( Exception e ){
LOG.error(e);
LOG.debug("El usuario '" + dni_usuario + "' NO tiene el rol" + rol);
return false;
} finally{
try{
resultados.close();
}catch(Exception e) {}
try{
stmt.close();
} catch (Exception e){}
try{
con.close();
}catch(Exception e){}
}
}
}