If a thread requests more stack space than it has available it receives a StackOverflowError.
http://docs.oracle.com/javase/7/docs/api/java/lang/StackOverflowError.html
The size of an individual stack frame is determined at compile time and stored in the class file together with the method's code. Actually there are two fields: the size of the local variable array, and the depth of the operand stack. Both are limited to 2^16-1. http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#1546