--- old/src/share/vm/runtime/thread.cpp 2015-06-13 09:00:31.000000000 -0500 +++ new/src/share/vm/runtime/thread.cpp 2015-06-13 09:00:31.000000000 -0500 @@ -54,6 +54,7 @@ #include "runtime/deoptimization.hpp" #include "runtime/fprofiler.hpp" #include "runtime/frame.inline.hpp" +#include "runtime/globals.hpp" #include "runtime/init.hpp" #include "runtime/interfaceSupport.hpp" #include "runtime/java.hpp" @@ -3303,6 +3304,11 @@ 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()) { + return JNI_EINVAL; + } + if (PauseAtStartup) { os::pause(); }