Comparar horas

O que estou fazendo de errado, alguem pode me ajudar?

mostra mensagem Erro null;

não consigo cadastrar, com certeza o problema é no metodo de comparar horas mas não consigo achar

[code]@Controller(“agendaCirurgicaController”)
@Scope(“session”)
public class AgendaCirurgicaController {

private AgendaCirurgica agendaCirurgica;
@Resource
private DaoGenerico<AgendaCirurgica, Integer> agendaCirurgicaDao;

private Date hrInicial;
private Date hrFinal;

// COMPARA HORA INICIAL E HORA FINAL
public Boolean comparaHora(Date horaInicio, Date horaFinal) {
Time hrInicialTimesTemp = new Time(horaInicio.getTime());
Time hrFinalTimesTemp = new Time(horaFinal.getTime());

Calendar periodoInicial = Calendar.getInstance();
Calendar periodoFinal = Calendar.getInstance();

periodoInicial.setTime(hrInicialTimesTemp);
periodoFinal.setTime(hrFinalTimesTemp);

// SALVA AGENDAMENTO CIRÚRGICO
public void salvar() {
try {

    if (comparaHora(hrInicial, hrFinal)) {
	System.out.println("<<<<<<<<<<<<<<<<<<<<HORARIO VEIO VEIO VEIO>>>>>>>>>>>>>>>>");
	if (hrInicial != null) {
	    agendaCirurgica.setHrInicial(utils.formatHoraSqlServer(hrInicial));// CONVERTE DATE PARA SQL TIME
	}
	if (hrFinal != null) {
	    agendaCirurgica.setHrFinal(utils.formatHoraSqlServer(hrFinal));//CONVERTE DATE PARA SQL TIME
	}

    }

    agendaCirurgicaDao.atualizar(agendaCirurgica);
    mostraImagem = 1;

    FacesContext.getCurrentInstance().addMessage(null,
	    new FacesMessage(FacesMessage.SEVERITY_INFO, "Salvo com sucesso!!", null));
    utils = new Utils();
    init();

} catch (Exception e) {
    FacesContext.getCurrentInstance().addMessage(null,
	    new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro: " + e.getCause(), null));
    tela = 2;
}
}


for (AgendaCirurgica agenda : agendaCirurgicaDao.todos()) {
    if (periodoInicial.getTime().after(agenda.getHrInicial())
	    && periodoFinal.getTime().before(agenda.getHrFinal())) {
	System.out.println("<<<<<<<<<<<<<<<<<<<<HORARIO NÃO PERMITIDO>>>>>>>>>>>>>>>>");
	return false;
    } else {
	System.out.println("<<<<<<<<<<<<<<<<<<<<HORARIO PERMITIDO>>>>>>>>>>>>>>>>");
	return true;
    }
}

return null;

}

}
[/code]

Coloca o StackTrace?

E por favor, identa o seu código. Tá muito dificil de ler… =/

Se você endentasse corretamente seu código, perceberia que você não fechou chaves no método comparaHora.

SEMPRE faça a endentação corretamente. Ela é um princípio BÁSICO de qualquer código minimamente organizado.

Outra coisa… até onde eu sei, a classe Time não existe. A classe Date e a classe Calendar guardam, ao mesmo tempo, dia e hora.

Pessoal o que estou tentando fazer é não permitir que o usuário digite um internvalo de horas que ja exista cadastrado no banco de horas - o que consegui foi não deixar o tal usuário digitar o horário inicial maior que o final, isso tá beleza, mas a parte de não permitir o cadastro a hora no intervalo inicial e final que já esteja cadastrado - isso preciso de vossa ajuda. Obrigado
Segue codigo abaixo

[code] public void validaHoraInicio(FacesContext context, UIComponent component, Object value) {
hrInicial = (Date) value;

}

public void validaHoraFinal(FacesContext context, UIComponent component, Object value) {
hrFinal = (Date) value;

java.sql.Timestamp hrInicialTimesTemp =  new Timestamp(hrInicial.getTime());
Calendar periodoInicial = Calendar.getInstance();
periodoInicial.setTime(hrInicialTimesTemp);	

java.sql.Timestamp hrFinalTimesTemp =  new Timestamp(hrFinal.getTime());
Calendar periodoFinal = Calendar.getInstance();
periodoFinal.setTime(hrFinalTimesTemp);

for (AgendaCirurgica agenda : agendaCirurgicaDao.todos()) {
    

    if (hrInicialTimesTemp.after(agenda.getHrInicial())&& hrFinalTimesTemp.before(agenda.getHrFinal())
	    || hrInicialTimesTemp.after(hrFinalTimesTemp)) {
	throw new ValidatorException(new FacesMessage("Hora inicial maior que hora fina ou horário não disponívell"));
    }
}
}[/code]

Estou fazendo a identação, mas não sei porque, quando posto o código fica suado