# HG changeset patch # User dcubed # Date 1248810607 21600 # Node ID 16c930df1e9bcb1ca7375ea615aab221ae7f2701 # Parent 494244ae01716855ef53f4849afc8d4ad8298cf9# Parent 2b4230d1e5894436f05382766a63cf0a66cda3e1 Merge diff -r 494244ae0171 -r 16c930df1e9b src/share/vm/memory/genCollectedHeap.cpp --- a/src/share/vm/memory/genCollectedHeap.cpp Mon Jul 27 17:23:52 2009 -0400 +++ b/src/share/vm/memory/genCollectedHeap.cpp Tue Jul 28 13:50:07 2009 -0600 @@ -482,6 +482,10 @@ for (int i = starting_level; i <= max_level; i++) { if (_gens[i]->should_collect(full, size, is_tlab)) { if (i == n_gens() - 1) { // a major collection is to happen + if (!complete) { + // The full_collections increment was missed above. + increment_total_full_collections(); + } pre_full_gc_dump(); // do any pre full gc dumps } // Timer for individual generations. Last argument is false: no CR diff -r 494244ae0171 -r 16c930df1e9b src/share/vm/prims/jvmtiExport.cpp --- a/src/share/vm/prims/jvmtiExport.cpp Mon Jul 27 17:23:52 2009 -0400 +++ b/src/share/vm/prims/jvmtiExport.cpp Tue Jul 28 13:50:07 2009 -0600 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2427,6 +2427,11 @@ return; } + if (ForceFullGCJVMTIEpilogues) { + // force 'Full GC' was done semantics for JVMTI GC epilogues + _full = true; + } + // GarbageCollectionStart event posted from VM thread - okay because // JVMTI is clear that the "world is stopped" and callback shouldn't // try to call into the VM. diff -r 494244ae0171 -r 16c930df1e9b src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Mon Jul 27 17:23:52 2009 -0400 +++ b/src/share/vm/runtime/globals.hpp Tue Jul 28 13:50:07 2009 -0600 @@ -1082,6 +1082,9 @@ product(ccstr, TraceJVMTI, NULL, \ "Trace flags for JVMTI functions and events") \ \ + product(bool, ForceFullGCJVMTIEpilogues, false, \ + "Force 'Full GC' was done semantics for JVMTI GC epilogues") \ + \ /* This option can change an EMCP method into an obsolete method. */ \ /* This can affect tests that except specific methods to be EMCP. */ \ /* This option should be used with caution. */ \