Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError

3 respostas
W

Eu tenho uma aplicacao que esta gerando este erro e tenho ideia o que esteja causando e muito mesmo como resolver

Exception in thread AWT-EventQueue-0 java.lang.StackOverflowError

at sun.nio.cs.SingleByteEncoder.encodeArrayLoop(Unknown Source)

at sun.nio.cs.SingleByteEncoder.encodeLoop(Unknown Source)

at java.nio.charset.CharsetEncoder.encode(Unknown Source)

at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(Unknown Source)

at sun.nio.cs.StreamEncoder.write(Unknown Source)

at java.io.OutputStreamWriter.write(Unknown Source)

at java.io.BufferedWriter.flushBuffer(Unknown Source)

at java.io.PrintStream.newLine(Unknown Source)

at java.io.PrintStream.println(Unknown Source)

alguem pode me ajudar?

desde de ja agradeço.

3 Respostas

ramilani12

Que tipo de operação vc esta realizando ?
Esta gravando em um arquivo ?
Pela exception vc esta estorando um array ou algo parecido .

W

o metodo abaixo esta gerando o erro que eu tinha falado acima.
o erro esta na linha 11 e 12

01    private void setCromossomo(int tamanhoCromossomo, int 
02  numeroGrupo) {
03		
04		cromossomo = new int[tamanhoCromossomo];
05		int testaCromossomo[] = new int[numeroGrupo];
06		
07		for(int n = 0; n < numeroGrupo; n ++)
08			testaCromossomo[n] = 0;
09		
10		for(int n = 0; n < tamanhoCromossomo; n ++){
11			cromossomo[n] = (int) ((Math.random() *numeroGrupo));                
12			testaCromossomo[cromossomo[n]] = 1;
13		}		
14		
15		int n = 0;;
16		while( n < numeroGrupo){
17			if(testaCromossomo[n]==0){
18				n = numeroGrupo+1;
19				setCromossomo(tamanhoCromossomo,numeroGrupo);
20			}
21			n++;
		}
	}
davidbuzatto

Como seu método é recursivo está gerando um estouro de pilha pois você está alocando muita coisa na memória e não está cabendo. Revisa sua lógia e veja se não tem como melhorá-la.

Por exemplo, o for que você usa para zerar o array é desnecessário pois quando vc instancia um array de ints todas suas posições recebem por default o valor 0.

Falow!

Criado 15 de outubro de 2006
Ultima resposta 16 de out. de 2006
Respostas 3
Participantes 3