OutOfMemory

Galera,

Tenho uma thread que fica chamando operações de um Web Service de 10 em 10 segundos. Crio as instancias dos objetos e depois de carregar os dados atribuo null as instâncias. Porém minha aplicação, depois de um certo tempo lança a seguinte exceção OutOfMemory (heap space). Já configurei a JVM para usar 256 mb de memória máxima, mas o problema que minha aplicação roda em máquinas bem modestas.

Minha thread (resumida):

    public class CarregaDados extends Thread
    {
        
        public void run()
        {
            
            while (true)
            {
                
               // Chama a operação 
               wsListaSitAtual = new ListaSituacaoAtualWS();
               ...............................

               // Depois de carregar os dados em um JTable
               wsListaSitAtual = null;
               // Chama o Garbage Collector
                Runtime.getRuntime().gc();
            }
        }
     }

E estou chamando esta thread (CarregaDados) no construtor do meu formulário princiapal.

Tente isso!

[code] public class CarregaDados extends Thread
{

    public void run()
    {
        ListaSituacaoAtualWS  wsListaSitAtual;
       
        while (true)
        {
            
        wsListaSitAtual = new ListaSituacaoAtualWS();
        }
    }
 }

[/code]

Tente isso!

[code] public class CarregaDados extends Thread
{

    public void run()
    {
        ListaSituacaoAtualWS  wsListaSitAtual;
       
        while (true)
        {
            
        wsListaSitAtual = new ListaSituacaoAtualWS();
        }
    }
 }

[/code]

Mas já está assim!

  1. Baixe o Netbeans, e o profiler do Netbeans;
  2. Analise sua aplicação rodando e veja qual é a classe que está consumindo memória;
  3. Procure referências a essa classe em todos os locais possíveis.

Sem um profiler, fica difícil saber onde está o problema.