What causes a java.lang.StackOverflowError

Ivan picture Ivan · Jul 7, 2010 · Viewed 227.8k times · Source

What can cause a java.lang.StackOverflowError? The stack printout that I get is not very deep at all (only 5 methods).

Answer

Thota Srinath picture Thota Srinath · Jul 8, 2013

Check for any recusive calls for methods. Mainly it is caused when there is recursive call for a method. A simple example is

public static void main(String... args) {
    Main main = new Main();

    main.testMethod(1);
}

public void testMethod(int i) {
    testMethod(i);

    System.out.println(i);
}

Here the System.out.println(i); will be repeatedly pushed to stack when the testMethod is called.