src/share/vm/services/management.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/services

src/share/vm/services/management.cpp

Print this page




1783   char* name = java_lang_String::as_utf8_string(fn);
1784   Flag* flag = Flag::find_flag(name, strlen(name));
1785   if (flag == NULL) {
1786     THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
1787               "Flag does not exist.");
1788   }
1789   if (!flag->is_writeable()) {
1790     THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
1791               "This flag is not writeable.");
1792   }
1793 
1794   bool succeed;
1795   if (flag->is_bool()) {
1796     bool bvalue = (new_value.z == JNI_TRUE ? true : false);
1797     succeed = CommandLineFlags::boolAtPut(name, &bvalue, MANAGEMENT);
1798   } else if (flag->is_intx()) {
1799     intx ivalue = (intx)new_value.j;
1800     succeed = CommandLineFlags::intxAtPut(name, &ivalue, MANAGEMENT);
1801   } else if (flag->is_uintx()) {
1802     uintx uvalue = (uintx)new_value.j;












1803     succeed = CommandLineFlags::uintxAtPut(name, &uvalue, MANAGEMENT);
1804   } else if (flag->is_uint64_t()) {
1805     uint64_t uvalue = (uint64_t)new_value.j;
1806     succeed = CommandLineFlags::uint64_tAtPut(name, &uvalue, MANAGEMENT);
1807   } else if (flag->is_ccstr()) {
1808     oop str = JNIHandles::resolve_external_guard(new_value.l);
1809     if (str == NULL) {
1810       THROW(vmSymbols::java_lang_NullPointerException());
1811     }
1812     ccstr svalue = java_lang_String::as_utf8_string(str);
1813     succeed = CommandLineFlags::ccstrAtPut(name, &svalue, MANAGEMENT);
1814   }
1815   assert(succeed, "Setting flag should succeed");
1816 JVM_END
1817 
1818 class ThreadTimesClosure: public ThreadClosure {
1819  private:
1820   objArrayHandle _names_strings;
1821   char **_names_chars;
1822   typeArrayOop _times;




1783   char* name = java_lang_String::as_utf8_string(fn);
1784   Flag* flag = Flag::find_flag(name, strlen(name));
1785   if (flag == NULL) {
1786     THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
1787               "Flag does not exist.");
1788   }
1789   if (!flag->is_writeable()) {
1790     THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
1791               "This flag is not writeable.");
1792   }
1793 
1794   bool succeed;
1795   if (flag->is_bool()) {
1796     bool bvalue = (new_value.z == JNI_TRUE ? true : false);
1797     succeed = CommandLineFlags::boolAtPut(name, &bvalue, MANAGEMENT);
1798   } else if (flag->is_intx()) {
1799     intx ivalue = (intx)new_value.j;
1800     succeed = CommandLineFlags::intxAtPut(name, &ivalue, MANAGEMENT);
1801   } else if (flag->is_uintx()) {
1802     uintx uvalue = (uintx)new_value.j;
1803 
1804     if (strncmp(name, "MaxHeapFreeRatio", 17) == 0) {
1805       FormatBuffer<80> err_msg("");
1806       if (!Arguments::verify_MaxHeapFreeRatio(err_msg, uvalue)) {
1807         THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), err_msg.buffer());
1808       }
1809     } else if (strncmp(name, "MinHeapFreeRatio", 17) == 0) {
1810       FormatBuffer<80> err_msg("");
1811       if (!Arguments::verify_MinHeapFreeRatio(err_msg, uvalue)) {
1812         THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), err_msg.buffer());
1813       }
1814     }
1815     succeed = CommandLineFlags::uintxAtPut(name, &uvalue, MANAGEMENT);
1816   } else if (flag->is_uint64_t()) {
1817     uint64_t uvalue = (uint64_t)new_value.j;
1818     succeed = CommandLineFlags::uint64_tAtPut(name, &uvalue, MANAGEMENT);
1819   } else if (flag->is_ccstr()) {
1820     oop str = JNIHandles::resolve_external_guard(new_value.l);
1821     if (str == NULL) {
1822       THROW(vmSymbols::java_lang_NullPointerException());
1823     }
1824     ccstr svalue = java_lang_String::as_utf8_string(str);
1825     succeed = CommandLineFlags::ccstrAtPut(name, &svalue, MANAGEMENT);
1826   }
1827   assert(succeed, "Setting flag should succeed");
1828 JVM_END
1829 
1830 class ThreadTimesClosure: public ThreadClosure {
1831  private:
1832   objArrayHandle _names_strings;
1833   char **_names_chars;
1834   typeArrayOop _times;


src/share/vm/services/management.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File