6976528: PS: assert(!limit_exceeded || softrefs_clear) failed: Should have been cleared
Reviewed-by: johnc
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Wed Mar 13 05:14:43 2013 +0100
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp Tue Mar 12 11:00:49 2013 -0700
@@ -409,7 +409,7 @@
// heap remains parsable.
const bool limit_exceeded = size_policy()->gc_overhead_limit_exceeded();
const bool softrefs_clear = collector_policy()->all_soft_refs_clear();
- assert(!limit_exceeded || softrefs_clear, "Should have been cleared");
+
if (limit_exceeded && softrefs_clear) {
*gc_overhead_limit_was_exceeded = true;
size_policy()->set_gc_overhead_limit_exceeded(false);
--- a/hotspot/src/share/vm/memory/collectorPolicy.cpp Wed Mar 13 05:14:43 2013 +0100
+++ b/hotspot/src/share/vm/memory/collectorPolicy.cpp Tue Mar 12 11:00:49 2013 -0700
@@ -620,7 +620,7 @@
const bool limit_exceeded = size_policy()->gc_overhead_limit_exceeded();
const bool softrefs_clear = all_soft_refs_clear();
- assert(!limit_exceeded || softrefs_clear, "Should have been cleared");
+
if (limit_exceeded && softrefs_clear) {
*gc_overhead_limit_was_exceeded = true;
size_policy()->set_gc_overhead_limit_exceeded(false);