src/share/vm/services/diagnosticCommand.hpp

Print this page

        

*** 48,58 **** "With no argument this will show a list of available commands. " "'help all' will show help for all commands."; } static const char* impact() { return "Low"; } static int num_arguments(); ! virtual void execute(TRAPS); }; class VersionDCmd : public DCmd { public: VersionDCmd(outputStream* output, bool heap) : DCmd(output,heap) { } --- 48,58 ---- "With no argument this will show a list of available commands. " "'help all' will show help for all commands."; } static const char* impact() { return "Low"; } static int num_arguments(); ! virtual void execute(DCmdSource source, TRAPS); }; class VersionDCmd : public DCmd { public: VersionDCmd(outputStream* output, bool heap) : DCmd(output,heap) { }
*** 59,70 **** static const char* name() { return "VM.version"; } static const char* description() { return "Print JVM version information."; } static const char* impact() { return "Low"; } static int num_arguments() { return 0; } ! virtual void execute(TRAPS); }; class CommandLineDCmd : public DCmd { public: CommandLineDCmd(outputStream* output, bool heap) : DCmd(output, heap) { } --- 59,75 ---- static const char* name() { return "VM.version"; } static const char* description() { return "Print JVM version information."; } static const char* impact() { return "Low"; } + static const JavaPermission permission() { + JavaPermission p = {"java.util.PropertyPermission", + "java.vm.version", "read"}; + return p; + } static int num_arguments() { return 0; } ! virtual void execute(DCmdSource source, TRAPS); }; class CommandLineDCmd : public DCmd { public: CommandLineDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
*** 71,82 **** static const char* name() { return "VM.command_line"; } static const char* description() { return "Print the command line used to start this VM instance."; } static const char* impact() { return "Low"; } static int num_arguments() { return 0; } ! virtual void execute(TRAPS) { Arguments::print_on(_output); } }; // See also: get_system_properties in attachListener.cpp --- 76,92 ---- static const char* name() { return "VM.command_line"; } static const char* description() { return "Print the command line used to start this VM instance."; } static const char* impact() { return "Low"; } + static const JavaPermission permission() { + JavaPermission p = {"java.lang.management.ManagementPermission", + "monitor", NULL}; + return p; + } static int num_arguments() { return 0; } ! virtual void execute(DCmdSource source, TRAPS) { Arguments::print_on(_output); } }; // See also: get_system_properties in attachListener.cpp
*** 88,99 **** return "Print system properties."; } static const char* impact() { return "Low"; } static int num_arguments() { return 0; } ! virtual void execute(TRAPS); }; // See also: print_flag in attachListener.cpp class PrintVMFlagsDCmd : public DCmdWithParser { protected: --- 98,114 ---- return "Print system properties."; } static const char* impact() { return "Low"; } + static const JavaPermission permission() { + JavaPermission p = {"java.util.PropertyPermission", + "*", "read"}; + return p; + } static int num_arguments() { return 0; } ! virtual void execute(DCmdSource source, TRAPS); }; // See also: print_flag in attachListener.cpp class PrintVMFlagsDCmd : public DCmdWithParser { protected:
*** 105,116 **** return "Print VM flag options and their current values."; } static const char* impact() { return "Low"; } static int num_arguments(); ! virtual void execute(TRAPS); }; class VMUptimeDCmd : public DCmdWithParser { protected: DCmdArgument<bool> _date; --- 120,136 ---- return "Print VM flag options and their current values."; } static const char* impact() { return "Low"; } + static const JavaPermission permission() { + JavaPermission p = {"java.lang.management.ManagementPermission", + "monitor", NULL}; + return p; + } static int num_arguments(); ! virtual void execute(DCmdSource source, TRAPS); }; class VMUptimeDCmd : public DCmdWithParser { protected: DCmdArgument<bool> _date;
*** 122,132 **** } static const char* impact() { return "Low"; } static int num_arguments(); ! virtual void execute(TRAPS); }; class SystemGCDCmd : public DCmd { public: SystemGCDCmd(outputStream* output, bool heap) : DCmd(output, heap) { } --- 142,152 ---- } static const char* impact() { return "Low"; } static int num_arguments(); ! virtual void execute(DCmdSource source, TRAPS); }; class SystemGCDCmd : public DCmd { public: SystemGCDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
*** 136,146 **** } static const char* impact() { return "Medium: Depends on Java heap size and content."; } static int num_arguments() { return 0; } ! virtual void execute(TRAPS); }; class RunFinalizationDCmd : public DCmd { public: RunFinalizationDCmd(outputStream* output, bool heap) : DCmd(output, heap) { } --- 156,166 ---- } static const char* impact() { return "Medium: Depends on Java heap size and content."; } static int num_arguments() { return 0; } ! virtual void execute(DCmdSource source, TRAPS); }; class RunFinalizationDCmd : public DCmd { public: RunFinalizationDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
*** 150,160 **** } static const char* impact() { return "Medium: Depends on Java content."; } static int num_arguments() { return 0; } ! virtual void execute(TRAPS); }; #if INCLUDE_SERVICES // Heap dumping supported // See also: dump_heap in attachListener.cpp class HeapDumpDCmd : public DCmdWithParser { --- 170,180 ---- } static const char* impact() { return "Medium: Depends on Java content."; } static int num_arguments() { return 0; } ! virtual void execute(DCmdSource source, TRAPS); }; #if INCLUDE_SERVICES // Heap dumping supported // See also: dump_heap in attachListener.cpp class HeapDumpDCmd : public DCmdWithParser {
*** 171,182 **** } static const char* impact() { return "High: Depends on Java heap size and content. " "Request a full GC unless the '-all' option is specified."; } static int num_arguments(); ! virtual void execute(TRAPS); }; #endif // INCLUDE_SERVICES // See also: inspeactheap in attachListener.cpp class ClassHistogramDCmd : public DCmdWithParser { --- 191,207 ---- } static const char* impact() { return "High: Depends on Java heap size and content. " "Request a full GC unless the '-all' option is specified."; } + static const JavaPermission permission() { + JavaPermission p = {"java.lang.management.ManagementPermission", + "monitor", NULL}; + return p; + } static int num_arguments(); ! virtual void execute(DCmdSource source, TRAPS); }; #endif // INCLUDE_SERVICES // See also: inspeactheap in attachListener.cpp class ClassHistogramDCmd : public DCmdWithParser {
*** 191,202 **** return "Provide statistics about the Java heap usage."; } static const char* impact() { return "High: Depends on Java heap size and content."; } static int num_arguments(); ! virtual void execute(TRAPS); }; // See also: thread_dump in attachListener.cpp class ThreadDumpDCmd : public DCmdWithParser { protected: --- 216,232 ---- return "Provide statistics about the Java heap usage."; } static const char* impact() { return "High: Depends on Java heap size and content."; } + static const JavaPermission permission() { + JavaPermission p = {"java.lang.management.ManagementPermission", + "monitor", NULL}; + return p; + } static int num_arguments(); ! virtual void execute(DCmdSource source, TRAPS); }; // See also: thread_dump in attachListener.cpp class ThreadDumpDCmd : public DCmdWithParser { protected:
*** 208,219 **** return "Print all threads with stacktraces."; } static const char* impact() { return "Medium: Depends on the number of threads."; } static int num_arguments(); ! virtual void execute(TRAPS); }; // Enhanced JMX Agent support class JMXStartRemoteDCmd : public DCmdWithParser { --- 238,254 ---- return "Print all threads with stacktraces."; } static const char* impact() { return "Medium: Depends on the number of threads."; } + static const JavaPermission permission() { + JavaPermission p = {"java.lang.management.ManagementPermission", + "monitor", NULL}; + return p; + } static int num_arguments(); ! virtual void execute(DCmdSource source, TRAPS); }; // Enhanced JMX Agent support class JMXStartRemoteDCmd : public DCmdWithParser {
*** 247,257 **** return "Start remote management agent."; } static int num_arguments(); ! virtual void execute(TRAPS); }; class JMXStartLocalDCmd : public DCmd { --- 282,292 ---- return "Start remote management agent."; } static int num_arguments(); ! virtual void execute(DCmdSource source, TRAPS); }; class JMXStartLocalDCmd : public DCmd {
*** 268,278 **** static const char *description() { return "Start local management agent."; } ! virtual void execute(TRAPS); }; class JMXStopRemoteDCmd : public DCmd { public: --- 303,313 ---- static const char *description() { return "Start local management agent."; } ! virtual void execute(DCmdSource source, TRAPS); }; class JMXStopRemoteDCmd : public DCmd { public:
*** 287,295 **** static const char *description() { return "Stop remote management agent."; } ! virtual void execute(TRAPS); }; #endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP --- 322,330 ---- static const char *description() { return "Stop remote management agent."; } ! virtual void execute(DCmdSource source, TRAPS); }; #endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP