The java.lang.OutOfMemoryError error
It is sometimes said that a programmer has not really experienced anything until he or she has come across a java.lang.OutOfMemoryError
(OOME) error. The Java SE 7 javadoc (http://docs.oracle.com/javase/7/docs/api/java/lang/OutOfMemoryError.html) describes the OOME as follows:
Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector. OutOfMemoryError objects may be constructed by the virtual machine as if suppression was disabled and/or the stack trace was not writable.
When this error turns up, the OOME hints, in its message, what memory area has been exhausted or what other memory-related problem it pertains to. Most commonly, it points out the heap or PermGen.
The responses among different organizations and individuals vary. Many try to create more or less clever workarounds in order to avoid the nasty OOME that will crash the VM of their valuable system...