On 12/2/2011 5:57 AM, Frederic Parain wrote:

http://cr.openjdk.java.net/~fparain/7104647/webrev.jdk.00/
ManagementPermission.java
   The diagnostic command is not part of the platform.
   It doesn't seem right to add this new "diagnosticCommand"
   ManagementPermission.  Are the existing "control" and
   "monitor" permission not adequate for the diagnostic
   command use?

   On the other hand, I expect that the required
   ManagementPermission should be specified in the new methods
   added in HotSpotDiagnosticMXBean (see below).

HotSpotDiagnosticMXBean.java
   sun.managment.HotSpotDiagnostic does check if the execute
   method has the "diagnosticCommand" permission.  The javadoc
   must specify the SecurityException be thrown under what
   condition.

   To me, the execute methods could require
   ManagementPermission("control") as the setVMOption method.
   I'm not certain if DiagnosticCommandInfo is considered as
   non-sensitive information.  Have you checked with the
   security team to get their advice?

   L112: Since you are in this file, can you fix the typo
   "java.security.SecurityException" to "java.lang.SecurityException"?

   The execute method doesn't throw any exception other than
   IAE.  What happens if the specified command execution fails
   in the target VM?  If no exception is thrown, how does the
   caller detect if the command succeeds or not and handle it
   gracefully?  It seems that this mechanism should provide
   a way to detect if a command succeeds or fails programmatically
   rather than burying the error message in the returned string.

   The spec needs some clarification about the list of diagnostic
   commands may change during JVM execution.

HotSpotDiagnostic.java
   L45-49: jvm is not used and can be removed.

   L133: do you need to check if command == null and throw NPE?
     or NPE will be thrown somewhere?

   L159: NPE should be thrown instead of IAE, right?  Unless
     the javadoc for the execute method is modified to reflect that.

   L176: minor: I wonder if it's any simpler for this native method
     to take the DiagnosticCommandInfo[] argument (i.e. the caller
     method does the array allocation than in the native method
     implementation).

ManagementFactoryHelper.java
   L270: The new parameter "jvm" doesn't seem to be needed.


Util.java
   See comments in ManagementPermission.

jmm.h
   L316-326: the parameters should be lined up with the first one.
     L316-317 was aligned improperly and it's good to fix them
     in this batch.

HotSpotDiagnostic.c
   L44, 51, 76-85: indentation needs fixing.

   L158, 172: this should never happen unless the hotspot/jdk is
     mismatched.  But would it better to throw an exception with
     an informative message to help diagnostic in case the mismatch
     does happen?

jcmd.1 (man page)
   Should PerfCounter.print be listed in the man page?  Or
   treat it like other diagnostic commands that are
   implementation-dependent?

That's all the comments I have on the jdk side.
Mandy

Reply via email to