8016357: Update hotspot diagnostic class
Add security check to HotSpotDiagnostic.dumpHeap Reviewed-by: fparain, sla, ahgross
This commit is contained in:
parent
bd41c425d2
commit
ff1d4ae905
jdk
make/java/management
makefiles/mapfiles/libmanagement
src/share
classes
native/sun/management
@ -57,7 +57,7 @@ SUNWprivate_1.1 {
|
||||
Java_sun_management_GcInfoBuilder_fillGcAttributeInfo;
|
||||
Java_sun_management_GcInfoBuilder_getLastGcInfo0;
|
||||
Java_sun_management_GcInfoBuilder_getNumGcExtAttributes;
|
||||
Java_sun_management_HotSpotDiagnostic_dumpHeap;
|
||||
Java_sun_management_HotSpotDiagnostic_dumpHeap0;
|
||||
Java_sun_management_HotspotThread_getInternalThreadCount;
|
||||
Java_sun_management_HotspotThread_getInternalThreadTimes0;
|
||||
Java_sun_management_MemoryImpl_getMemoryManagers0;
|
||||
|
@ -57,7 +57,7 @@ SUNWprivate_1.1 {
|
||||
Java_sun_management_GcInfoBuilder_fillGcAttributeInfo;
|
||||
Java_sun_management_GcInfoBuilder_getLastGcInfo0;
|
||||
Java_sun_management_GcInfoBuilder_getNumGcExtAttributes;
|
||||
Java_sun_management_HotSpotDiagnostic_dumpHeap;
|
||||
Java_sun_management_HotSpotDiagnostic_dumpHeap0;
|
||||
Java_sun_management_HotspotThread_getInternalThreadCount;
|
||||
Java_sun_management_HotspotThread_getInternalThreadTimes0;
|
||||
Java_sun_management_MemoryImpl_getMemoryManagers0;
|
||||
|
@ -66,6 +66,11 @@ public interface HotSpotDiagnosticMXBean extends PlatformManagedObject {
|
||||
* cannot be created, opened, or written to.
|
||||
* @throws UnsupportedOperationException if this operation is not supported.
|
||||
* @throws NullPointerException if <tt>outputFile</tt> is <tt>null</tt>.
|
||||
* @throws SecurityException
|
||||
* If a security manager exists and its {@link
|
||||
* java.lang.SecurityManager#checkWrite(java.lang.String)}
|
||||
* method denies write access to the named file
|
||||
* or the caller does not have ManagmentPermission("control").
|
||||
*/
|
||||
public void dumpHeap(String outputFile, boolean live) throws java.io.IOException;
|
||||
|
||||
|
@ -40,7 +40,17 @@ public class HotSpotDiagnostic implements HotSpotDiagnosticMXBean {
|
||||
public HotSpotDiagnostic() {
|
||||
}
|
||||
|
||||
public native void dumpHeap(String outputFile, boolean live) throws IOException;
|
||||
public void dumpHeap(String outputFile, boolean live) throws IOException {
|
||||
SecurityManager security = System.getSecurityManager();
|
||||
if (security != null) {
|
||||
security.checkWrite(outputFile);
|
||||
Util.checkControlAccess();
|
||||
}
|
||||
|
||||
dumpHeap0(outputFile, live);
|
||||
}
|
||||
|
||||
private native void dumpHeap0(String outputFile, boolean live) throws IOException;
|
||||
|
||||
public List<VMOption> getDiagnosticOptions() {
|
||||
List<Flag> allFlags = Flag.getAllFlags();
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "sun_management_HotSpotDiagnostic.h"
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_management_HotSpotDiagnostic_dumpHeap
|
||||
Java_sun_management_HotSpotDiagnostic_dumpHeap0
|
||||
(JNIEnv *env, jobject dummy, jstring outputfile, jboolean live)
|
||||
{
|
||||
jmm_interface->DumpHeap0(env, outputfile, live);
|
||||
|
Loading…
x
Reference in New Issue
Block a user