Florian Weimer said the following on 07/14/10 23:25:
* Pawel Veselov:
The fact that I catch any Throwable around the code that threw the
OOM error didn't particularly help. The error was logged, but the
timer thread still died.
By definition, a VM which throws an Error (or even
VirtualMachineError) is unstable and needs to be restarted. The
description of VirtualMachineError makes that pretty clear. You
cannot even know that the thread that triggers such exceptions is
responsible for their actual cause.
An OutOfMemoryError for the Java heap does not fall into that category.
OOM is a transient failure in many circumstances.
David Holmes