The check introduced in
OAK-4966 is relying on the first MemoryPoolMXBean found that matches the criteria. This means that, depending on the JVM, it will be checking any of the: PS Eden Space, PS Survivor Space or PS Old Gen Space - whichever is found first.
I am proposing a more reliable way to check this:
1. check the biggest pool - this usually corresponds to PS Old Gen (by default 2/3 of the heap), which is more stable and reflects better the usage of the heap.
2. use getCollectionUsage() instead of getUsage() to check the state of the heap after a GC. This way we avoid checking during temporary peaks of the used heap.