We have a mature client/server Java product, which recently threw a mysterious OutOfMemoryError.
The mysterious part is that there was about 650 megabytes available when the OutOfMemoryError was thrown.
We don't have proof, because we didn't have all of the necessary diagnostics on, but we're sure,
based on our experience with this program, that it didn't attempt to allocate that much memory all of a sudden.
What would cause this?
64-Bit 2xCore 2 Duo 2.4 GHz
Java 1.6.0, running in 64-bit
Conditions from shortly before the error occurred:
Max Java Heap Size:
1,908,932,608 (correlates to -Xmx setting)
Current Heap Size:
1,450,311,680 (still has about 450meg available)
Free in Heap:
123,412,328 (here's another 120meg, too)
java.lang.OutOfMemoryError: Java heap space
No stack trace was included.