< prev index next >
test/hotspot/jtreg/serviceability/dcmd/vm/ClassLoaderHierarchyTest.java
Print this page
rev 50411 : imported patch 8203682-jcmd-print-classloader-hierarchy
rev 50412 : [mq]: 8203682-jcmd-print-classloader-hierarchy-delta
*** 46,70 ****
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class ClassLoaderHierarchyTest {
! // jcmd my-vm VM.classloaders
! // +-- <bootstrap>
// |
! // +-- platform (instance of jdk.internal.loader.ClassLoaders$PlatformClassLoader)
// | |
! // | +-- app (instance of jdk.internal.loader.ClassLoaders$AppClassLoader)
// |
! // +-- <unnamed> (instance of jdk.internal.reflect.DelegatingClassLoader)
// |
! // +-- Kevin (instance of ClassLoaderHierarchyTest$TestClassLoader)
// |
! // +-- <unnamed> (instance of ClassLoaderHierarchyTest$TestClassLoader)
// |
! // +-- Bill (instance of ClassLoaderHierarchyTest$TestClassLoader)
! //
public void run(CommandExecutor executor) throws ClassNotFoundException {
ClassLoader unnamed_cl = new TestClassLoader(null, null);
Class<?> c1 = Class.forName("TestClass2", true, unnamed_cl);
--- 46,68 ----
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class ClassLoaderHierarchyTest {
! //+-- <bootstrap>
// |
! // +-- "platform", jdk.internal.loader.ClassLoaders$PlatformClassLoader
// | |
! // | +-- "app", jdk.internal.loader.ClassLoaders$AppClassLoader
// |
! // +-- jdk.internal.reflect.DelegatingClassLoader
// |
! // +-- "Kevin", ClassLoaderHierarchyTest$TestClassLoader
// |
! // +-- ClassLoaderHierarchyTest$TestClassLoader
// |
! // +-- "Bill", ClassLoaderHierarchyTest$TestClassLoader
public void run(CommandExecutor executor) throws ClassNotFoundException {
ClassLoader unnamed_cl = new TestClassLoader(null, null);
Class<?> c1 = Class.forName("TestClass2", true, unnamed_cl);
*** 85,105 ****
}
// First test: simple output, no classes displayed
OutputAnalyzer output = executor.execute("VM.classloaders");
output.shouldContain("<bootstrap>");
! output.shouldMatch("<unnamed>.*instance of.*TestClassLoader");
! output.shouldMatch("Kevin.*instance of.*TestClassLoader");
! output.shouldMatch("Bill.*instance of.*TestClassLoader");
// Second test: print with classes.
output = executor.execute("VM.classloaders show-classes");
output.shouldContain("<bootstrap>");
output.shouldContain("java.lang.Object");
! output.shouldMatch("<unnamed>.*instance of.*TestClassLoader");
! output.shouldMatch("Kevin.*instance of.*TestClassLoader");
! output.shouldMatch("Bill.*instance of.*TestClassLoader");
output.shouldContain("TestClass2");
}
static class TestClassLoader extends ClassLoader {
--- 83,103 ----
}
// First test: simple output, no classes displayed
OutputAnalyzer output = executor.execute("VM.classloaders");
output.shouldContain("<bootstrap>");
! output.shouldMatch(".*TestClassLoader");
! output.shouldMatch("Kevin.*TestClassLoader");
! output.shouldMatch("Bill.*TestClassLoader");
// Second test: print with classes.
output = executor.execute("VM.classloaders show-classes");
output.shouldContain("<bootstrap>");
output.shouldContain("java.lang.Object");
! output.shouldMatch(".*TestClassLoader");
! output.shouldMatch("Kevin.*TestClassLoader");
! output.shouldMatch("Bill.*TestClassLoader");
output.shouldContain("TestClass2");
}
static class TestClassLoader extends ClassLoader {
< prev index next >