< prev index next >

test/hotspot/jtreg/runtime/cds/appcds/jvmti/dumpingWithAgent/SimpleAgent.java

Print this page

*** 1,7 **** /* ! * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 21,30 **** * questions. * */ import java.lang.instrument.Instrumentation; ! public class SimpleAgent { public static void premain(String agentArg, Instrumentation instrumentation) { System.out.println("inside SimpleAgent"); } } --- 21,51 ---- * questions. * */ import java.lang.instrument.Instrumentation; ! public class SimpleAgent implements Runnable { public static void premain(String agentArg, Instrumentation instrumentation) { System.out.println("inside SimpleAgent"); + + Thread t = new Thread(new SimpleAgent()); + t.setDaemon(true); + t.start(); + } + + // Test for JDK-8249276: make sure we can handle objects that are locked during + // -Xshare:dump + public void run() { + try { + while (true) { + System.out.println("Let's wait ....."); + synchronized (Object.class) { + Object.class.wait(); + } + System.out.println("Huh?? notified??"); + } + } catch (Throwable t) { + System.err.println("Unexpected: " + t); + throw new RuntimeException(t); + } } }
< prev index next >