Boa noite senhores(as)!
Para que saibam, sou iniciante em Java e estou trabalhando com um aplicativo multiagentes e multithreads. Ahhh… E uso o Netbeans versão 6.7.1.
Resumidamente, estou com o seguinte problema:
Tenho 2 agentes diferentes, sendo executados em threads diferentes. Repentinamente um deles pára indevidamente. Pude constatar a parada através de um breakpoint colocado no método finalize do mesmo.
Bem, ao parar no breakpoint, verifiquei a “Pilha de Chamadas” e pude constatar que a chamada do método finalize é proveniente de classes internas do próprio Java.
Utilizei também o recurso de “Hierarquia de Chamadas” sobre o método finalize, porém, não me foi retornado nada, ou seja, nenhum outro método do software faz chamada ao método finalize.
O que me levou a crer que talvez seja o próprio Garbage Colector da linguagem que está eliminando o Agente.
Gostaria de uma ajuda, dos senhores experientes na linguagem, no seguinte:
[list]Como proceder nesta situação, pois, o código é extenso e por serem várias threads rodando “simultaneamente” não é tão simples de depurar![/list]
[list]Se nenhum método criado no software chama diretamente o método finalize, quais outros motivos poderiam levar a linguagem a promover a finalização do agente?[/list]
Se alguém puder dar uma luz neste problema, serei muitíssimo grato!
Desde já agradeço a todos pela atenção dispensada,
Edwar Saliba Júnior