diff -r 3721b7aa3a0d -r aa4049b4184a hotspot/src/share/vm/runtime/thread.cpp --- a/hotspot/src/share/vm/runtime/thread.cpp Mon Jul 27 14:05:55 2015 -0400 +++ b/hotspot/src/share/vm/runtime/thread.cpp Mon Jul 27 13:56:26 2015 -0700 @@ -52,6 +52,8 @@ #include "runtime/arguments.hpp" #include "runtime/atomic.inline.hpp" #include "runtime/biasedLocking.hpp" +#include "runtime/commandLineFlagConstraintList.hpp" +#include "runtime/commandLineFlagRangeList.hpp" #include "runtime/deoptimization.hpp" #include "runtime/fprofiler.hpp" #include "runtime/frame.inline.hpp" @@ -3322,8 +3324,15 @@ jint ergo_result = Arguments::apply_ergo(); if (ergo_result != JNI_OK) return ergo_result; - // Final check of all arguments after ergonomics which may change values. - if (!CommandLineFlags::check_all_ranges_and_constraints()) { + // Final check of all ranges after ergonomics which may change values. + if (!CommandLineFlagRangeList::check_ranges()) { + return JNI_EINVAL; + } + + // Final check of all 'AfterErgo' constraints after ergonomics which may change values. + bool constraint_result = CommandLineFlagConstraintList::check_constraints(CommandLineFlagConstraint::AfterErgo); + Arguments::post_after_ergo_constraint_check(constraint_result); + if (!constraint_result) { return JNI_EINVAL; }