Why would the StringBuffer have a limit on its size?
StringBuffer
I went through some of the links : http://www.coderanch.com/t/540346/java/java/maximum-size-hold-S
because stringbuffer internally uses an array and the maximum number of elements an array can accommodate is 2^31-1 if you increment after reaching this it will go to negative and throws the error