comparison src/share/vm/runtime/arguments.cpp @ 14317:b59507f713e0

8027113: decouple the '-XXaltjvm=<path>' option from the gamma launcher Summary: decoupled the '-XXaltjvm=<path>' option from the gamma launcher. Clearing the way for removing the remaining cruft associated with the previously removed gamma launcher. Reviewed-by: dcubed, dholmes
author rdurbin
date Thu, 30 Jan 2014 14:12:22 -0800
parents 8254553994b9
children 1020b892787b
comparison
equal deleted inserted replaced
14316:c888354aaa35 14317:b59507f713e0
99 bool Arguments::_java_compiler = false; 99 bool Arguments::_java_compiler = false;
100 bool Arguments::_xdebug_mode = false; 100 bool Arguments::_xdebug_mode = false;
101 const char* Arguments::_java_vendor_url_bug = DEFAULT_VENDOR_URL_BUG; 101 const char* Arguments::_java_vendor_url_bug = DEFAULT_VENDOR_URL_BUG;
102 const char* Arguments::_sun_java_launcher = DEFAULT_JAVA_LAUNCHER; 102 const char* Arguments::_sun_java_launcher = DEFAULT_JAVA_LAUNCHER;
103 int Arguments::_sun_java_launcher_pid = -1; 103 int Arguments::_sun_java_launcher_pid = -1;
104 bool Arguments::_created_by_gamma_launcher = false; 104 bool Arguments::_sun_java_launcher_is_altjvm = false;
105 105
106 // These parameters are reset in method parse_vm_init_args(JavaVMInitArgs*) 106 // These parameters are reset in method parse_vm_init_args(JavaVMInitArgs*)
107 bool Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods; 107 bool Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods;
108 bool Arguments::_UseOnStackReplacement = UseOnStackReplacement; 108 bool Arguments::_UseOnStackReplacement = UseOnStackReplacement;
109 bool Arguments::_BackgroundCompilation = BackgroundCompilation; 109 bool Arguments::_BackgroundCompilation = BackgroundCompilation;
149 } 149 }
150 } 150 }
151 151
152 // Process java launcher properties. 152 // Process java launcher properties.
153 void Arguments::process_sun_java_launcher_properties(JavaVMInitArgs* args) { 153 void Arguments::process_sun_java_launcher_properties(JavaVMInitArgs* args) {
154 // See if sun.java.launcher or sun.java.launcher.pid is defined. 154 // See if sun.java.launcher, sun.java.launcher.is_altjvm or
155 // sun.java.launcher.pid is defined.
155 // Must do this before setting up other system properties, 156 // Must do this before setting up other system properties,
156 // as some of them may depend on launcher type. 157 // as some of them may depend on launcher type.
157 for (int index = 0; index < args->nOptions; index++) { 158 for (int index = 0; index < args->nOptions; index++) {
158 const JavaVMOption* option = args->options + index; 159 const JavaVMOption* option = args->options + index;
159 const char* tail; 160 const char* tail;
160 161
161 if (match_option(option, "-Dsun.java.launcher=", &tail)) { 162 if (match_option(option, "-Dsun.java.launcher=", &tail)) {
162 process_java_launcher_argument(tail, option->extraInfo); 163 process_java_launcher_argument(tail, option->extraInfo);
164 continue;
165 }
166 if (match_option(option, "-Dsun.java.launcher.is_altjvm=", &tail)) {
167 if (strcmp(tail, "true") == 0) {
168 _sun_java_launcher_is_altjvm = true;
169 }
163 continue; 170 continue;
164 } 171 }
165 if (match_option(option, "-Dsun.java.launcher.pid=", &tail)) { 172 if (match_option(option, "-Dsun.java.launcher.pid=", &tail)) {
166 _sun_java_launcher_pid = atoi(tail); 173 _sun_java_launcher_pid = atoi(tail);
167 continue; 174 continue;
1011 return true; 1018 return true;
1012 } else if (strcmp(key, "sun.java.command") == 0) { 1019 } else if (strcmp(key, "sun.java.command") == 0) {
1013 _java_command = value; 1020 _java_command = value;
1014 1021
1015 // Record value in Arguments, but let it get passed to Java. 1022 // Record value in Arguments, but let it get passed to Java.
1016 } else if (strcmp(key, "sun.java.launcher.pid") == 0) { 1023 } else if (strcmp(key, "sun.java.launcher.is_altjvm") == 0 ||
1017 // launcher.pid property is private and is processed 1024 strcmp(key, "sun.java.launcher.pid") == 0) {
1018 // in process_sun_java_launcher_properties(); 1025 // sun.java.launcher.is_altjvm and sun.java.launcher.pid property are
1026 // private and are processed in process_sun_java_launcher_properties();
1019 // the sun.java.launcher property is passed on to the java application 1027 // the sun.java.launcher property is passed on to the java application
1020 FreeHeap(key); 1028 FreeHeap(key);
1021 if (eq != NULL) { 1029 if (eq != NULL) {
1022 FreeHeap(value); 1030 FreeHeap(value);
1023 } 1031 }
1798 } 1806 }
1799 } 1807 }
1800 1808
1801 void Arguments::process_java_launcher_argument(const char* launcher, void* extra_info) { 1809 void Arguments::process_java_launcher_argument(const char* launcher, void* extra_info) {
1802 _sun_java_launcher = strdup(launcher); 1810 _sun_java_launcher = strdup(launcher);
1803 if (strcmp("gamma", _sun_java_launcher) == 0) {
1804 _created_by_gamma_launcher = true;
1805 }
1806 } 1811 }
1807 1812
1808 bool Arguments::created_by_java_launcher() { 1813 bool Arguments::created_by_java_launcher() {
1809 assert(_sun_java_launcher != NULL, "property must have value"); 1814 assert(_sun_java_launcher != NULL, "property must have value");
1810 return strcmp(DEFAULT_JAVA_LAUNCHER, _sun_java_launcher) != 0; 1815 return strcmp(DEFAULT_JAVA_LAUNCHER, _sun_java_launcher) != 0;
1811 } 1816 }
1812 1817
1813 bool Arguments::created_by_gamma_launcher() { 1818 bool Arguments::sun_java_launcher_is_altjvm() {
1814 return _created_by_gamma_launcher; 1819 return _sun_java_launcher_is_altjvm;
1815 } 1820 }
1816 1821
1817 //=========================================================================================================== 1822 //===========================================================================================================
1818 // Parsing of main arguments 1823 // Parsing of main arguments
1819 1824
3763 !(FLAG_IS_CMDLINE(UseBiasedLocking))) { 3768 !(FLAG_IS_CMDLINE(UseBiasedLocking))) {
3764 UseBiasedLocking = false; 3769 UseBiasedLocking = false;
3765 } 3770 }
3766 } 3771 }
3767 3772
3768 // set PauseAtExit if the gamma launcher was used and a debugger is attached
3769 // but only if not already set on the commandline
3770 if (Arguments::created_by_gamma_launcher() && os::is_debugger_attached()) {
3771 bool set = false;
3772 CommandLineFlags::wasSetOnCmdline("PauseAtExit", &set);
3773 if (!set) {
3774 FLAG_SET_DEFAULT(PauseAtExit, true);
3775 }
3776 }
3777
3778 return JNI_OK; 3773 return JNI_OK;
3779 } 3774 }
3780 3775
3781 jint Arguments::adjust_after_os() { 3776 jint Arguments::adjust_after_os() {
3782 #if INCLUDE_ALL_GCS 3777 #if INCLUDE_ALL_GCS