Alguém sabe porque que esse código:
public class Teste {
private static int a(){
return a();
}
static public void main(String args[]) {
a();
}
}
Imprime um stack trace com apenas as últimas 1024 chamadas de função quando dá StackOverflowError?
Sei que são feitas mais de 9000 chamadas nesse caso (testei imprimindo uma string a cada chamada).
Só de saber que é um estouro de pilha já não resolve seu problema?
Não. Eu escrevi o código com o objetivo de lançar um StackOverflowError.
O que eu gostaria de saber é porque foi tomada, pela sun (estou usando a vm dela. Não testei em outras), a decisão de limitar o stacktrace. Se existe algum motivo ou se simplesmente acharam que 1024 era suficiente para qualquer erro.