Olá pessoal.
Estou criando um agendinha bem simples (com base em um programa da andreia_19), mas estou com um problema: Resumindo, eu rodo o programa várias vezes, com a mesma entrada de dados, mas os resultados nem sempre são os mesmos… Gostaria de saber por onde eu devo começar a procurar este tipo de bug no meu programa. A seguir algumas informações que podem ajudá-los a me ajudar:
-Não uso Threads
-Tenho uma classe DataEvento para representar um intervalo de tempo, que utiliza campos java.util.Calendar para marcar o tempo de início e o de fim. Estes campos são utilizados no compareTo (A classe implementa Comparable)
-Tenho uma classe auxiliar só pra me ajudar a criar objetos Calendar, chamada (indevidamente, acho) de Factory. Aqui vai o código do método que faz isso:
public class Factory {
public static Calendar getCalendar(
int dia,
int mes,
int ano,
int hora,
int minuto
) {
Calendar result = Calendar.getInstance();
result.setLenient(false);
result.set(ano, mes - 1, dia, hora, minuto, 0);
return result;
}
}
-Tenho uma classe abstrata Evento que representa um evento a ser incluído no calendário. Essa classe tem um campo do tipo DataEvento. Esta classe implementa Comparable e o campo do tipo DataEvento influencia na ordenação de seus objetos.
-Tenho a classe Calendario que tem um campo TreeSet
-Tenho a classe TesteCalendario, que pega um conjunto de objetos Evento e tenta inseri-los em um objeto Calendario. É nessa inserção que a bizarrice se manifesta. Algumas poucas vezes, ele consegue inserir eventos que, teoricamente, são iguais. Na maioria das vezes, funciona corretamente, não inserindo eventos que são iguais (segundo o compareTo do repectivo objeto Evento).
Vou deixar aqui o fonte completo da aplicação, caso achem necessário verificar detelhes mais profundos. E, óbviamente, podem me perguntar caso tenham dúvidas quanto ao meu problema e não estajam com o menor saco de ver os fontes.
Valeu, galera!