J2me + BD + Celular. (Ajuda)

Bom dia, Pessoal sou novo por aqui e não sei se estou postando isso no local certo.

Estou com um problema em uma aplicação que estou desenv. para celular. Ela comunica com o banco de dados corretamente no caso estou usando o Postgre, ela busca os registros corretamente sendo byte a byte. Após realizar essa leitura no banco tenho que jogar esses campos lidos na tela do meu celular, já criei o banco na web, coloquei os arquivos (*.jsp).
Ao executar o projeto ele me retorna a mensagem final “Uncaught exception: java.lang.OutOfMemoryError (stack trace incomplete)”. Sinceramente não sei o que pode estar acontecendo abaixo está o código que me faz possivel essa execução.




    public void startApp() {
        obj_acessoWeb = new acessoWeb(this);
        obj_acessoWeb.inicia_thread();
        if (midletPaused) {
            resumeMIDlet ();
        } else {
            initialize ();
            startMIDlet ();
        }
        midletPaused = false;
    }

import java.io.*;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;

public class acessoWeb implements Runnable {
    private Vector vetor_dados;
    private HttpConnection obj_conexao_http;//possibilita buscar os dados com o vector
    private String url;
    private InputStream obj_inputstream;
    private Aquario obj_aquario;
    private Thread thread;

public acessoWeb(Aquario obj_aquario) {
   this.obj_aquario = obj_aquario;

}

    public void inicia_thread() {
        System.out.println("Iniciando thread");
        thread = new Thread(this);
        thread.start();
        System.out.println("thread iniciada");
}

    public void run()
        {
        System.out.println("Iniciando public void run");
        url = "http://localhost:8080/AquarioWeb-war/HoraAliTanque.jsp";
        try
        {
            vetor_dados = new Vector(); //ira armazenar os dados para jogar na tela do celular
            String [] dados;
            obj_conexao_http = (HttpConnection) Connector.open(url);

            if (obj_conexao_http.getResponseCode() == HttpConnection.HTTP_OK)

            {
                obj_inputstream = obj_conexao_http.openDataInputStream();
                System.out.println("Http OK!");
                int i=1, caracter_lido = obj_inputstream.read();
                StringBuffer stringbuffer = new StringBuffer();
                while (caracter_lido != '^')
                {
                    
               [b] //lendo o cod.[/b]                    
                while (caracter_lido != ','){
                stringbuffer.append((char) caracter_lido);
                caracter_lido = obj_inputstream.read();
                    }
                dados = new String[3];
                System.out.println("Código: " +stringbuffer.toString().trim());
                dados[0] = stringbuffer.toString().trim();
                stringbuffer.delete(0, stringbuffer.length());
                caracter_lido = obj_inputstream.read();


               [b] //lendo o nome do user[/b]
                while (caracter_lido != ','){
                stringbuffer.append((char) caracter_lido);
                caracter_lido = obj_inputstream.read();
                    }
                System.out.println("Nome usuario: " +stringbuffer.toString().trim());
                dados[1] = stringbuffer.toString().trim();
                stringbuffer.delete(0, stringbuffer.length());
                caracter_lido = obj_inputstream.read();
                

		[b]//lendo tanque[/b]
                while (caracter_lido != '#'){
                    stringbuffer.append((char) caracter_lido);
                    caracter_lido = obj_inputstream.read();
                    }
                System.out.println("Nome tanque: " +stringbuffer.toString().trim());
                dados[2] = stringbuffer.toString().trim();
                stringbuffer.delete(0, stringbuffer.length());
                caracter_lido = obj_inputstream.read();


                vetor_dados.addElement(dados);

            }
                obj_aquario.recebedadosTanque(vetor_dados);
                obj_inputstream.close();
              
[b]		/*obj_aquario chama o método recebedados Tanque la do .java Aquario (Classe principal) passando assim o vetor_dados como parametro
                para que eu possa ta visualizando os dados que eu quero que ele list na tela do celular*/[/b]

            }
          }

           catch(IOException io)
           {
            System.out.println("Erro de IOException= "+io);
           } 
           catch(SecurityException se)
           {
            System.out.println("Erro de SecuryteException= "+se);
           }
    }
}


------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------

    		public void recebedadosTanque(Vector vetor_recebe_dados)
    		{
        	this.vetor_recebe_dados =  vetor_recebe_dados;
        	int tamanho = vetor_recebe_dados.size();
        	for (int i = 0;i < tamanho; i++)
        	{
  [b]          /*Vetor de dados convertendo para tipo string o vetor de dados o elemento da posicao 'i' que no caso é zero
            para cada elemento ele tem todos os dados a serem armazenados*/[/b]

            String[] dados = (String[]) vetor_recebe_dados.elementAt(i);//vetor de dados pega o elemento da posiçao I = 0
            lista.append(dados[0]+"-"+dados[1]+"-"+dados[2]+"-"+dados[3], null);
   }
}


Agradeço a atenção!
Glauciney