# HG changeset patch # Parent 94dee6e9176e68ea1122af0dc98b6a5c152ea1e5 diff -r 94dee6e9176e src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Tue Mar 31 17:58:49 2015 -0700 +++ b/src/share/vm/runtime/arguments.cpp Tue Mar 31 18:01:20 2015 -0700 @@ -65,8 +65,8 @@ #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" #endif // INCLUDE_ALL_GCS -// Note: This is a special bug reporting site for the JVM -#define DEFAULT_VENDOR_URL_BUG "http://bugreport.java.com/bugreport/crash.jsp" +// (DCEVM) The DCE VM has its own JIRA bug tracking system. +#define DEFAULT_VENDOR_URL_BUG "https://github.com/Guidewire/DCEVM/issues" #define DEFAULT_JAVA_LAUNCHER "generic" // Disable options not supported in this release, with a warning if they @@ -1561,6 +1561,10 @@ } void Arguments::select_gc_ergonomically() { + if (AllowEnhancedClassRedefinition) { + // (DCEVM) enforces serial GC + FLAG_SET_ERGO(bool, UseSerialGC, true); + } if (os::is_server_class_machine()) { if (should_auto_select_low_pause_collector()) { FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true); @@ -2082,6 +2086,17 @@ if (UseConcMarkSweepGC || UseParNewGC) i++; if (UseParallelGC || UseParallelOldGC) i++; if (UseG1GC) i++; + + if (AllowEnhancedClassRedefinition) { + // (DCEVM) Must use serial GC. This limitation applies because the instance size changing GC modifications + // are only built into the mark and compact algorithm. + if (!UseSerialGC && i >= 1) { + jio_fprintf(defaultStream::error_stream(), + "Must use the serial GC in the DCEVM\n"); + status = false; + } + } + if (i > 1) { jio_fprintf(defaultStream::error_stream(), "Conflicting collector combinations in option list; " diff -r 94dee6e9176e src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Tue Mar 31 17:58:49 2015 -0700 +++ b/src/share/vm/runtime/globals.hpp Tue Mar 31 18:01:20 2015 -0700 @@ -1305,6 +1305,9 @@ product(intx, TraceRedefineClasses, 0, \ "Trace level for JVMTI RedefineClasses") \ \ + product(bool, AllowEnhancedClassRedefinition, true, \ + "Allow enhanced class redefinition beyond swapping method bodies")\ + \ develop(bool, StressMethodComparator, false, \ "Run the MethodComparator on all loaded methods") \ \