annotate test/runtime/RedefineObject/TestRedefineObject.java @ 12986:1b422ef5288a

8025728: Missing volatile specifier for field G1AllocRegion::_alloc_region Summary: The field G1AllocRegion::_alloc_region needs to be declared volatile as it is used with that intention. Otherwise the compiler may generate the code that reloads the value which might have changed in the meantime, leading to spurious crashes. Reviewed-by: iveresov, simonis, tschatzl Contributed-by: Axel Siebenborn <axel.siebenborn@sap.com>
author tschatzl
date Wed, 23 Oct 2013 10:23:06 +0200
parents 85147f28faba
children de6a9e811145
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10268
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
1 /*
12022
85147f28faba 8009728: nsk/jvmti/AttachOnDemand/attach030 crashes on Win32
coleenp
parents: 10301
diff changeset
2 * Copyright (c) 2013, 2013, Oracle and/or its affiliates. All rights reserved.
10268
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
4 *
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
7 * published by the Free Software Foundation.
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
8 *
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
13 * accompanied this code).
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
14 *
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
18 *
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
21 * questions.
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
22 */
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
23 import java.io.PrintWriter;
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
24 import com.oracle.java.testlibrary.*;
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
25
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
26 /*
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
27 * Test to redefine java/lang/Object and verify that it doesn't crash on vtable
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
28 * call on basic array type.
12022
85147f28faba 8009728: nsk/jvmti/AttachOnDemand/attach030 crashes on Win32
coleenp
parents: 10301
diff changeset
29 * Test to redefine java/lang/ClassLoader and java/lang/reflect/Method to make
85147f28faba 8009728: nsk/jvmti/AttachOnDemand/attach030 crashes on Win32
coleenp
parents: 10301
diff changeset
30 * sure cached versions used afterward are the current version.
10268
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
31 *
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
32 * @test
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
33 * @bug 8005056
12022
85147f28faba 8009728: nsk/jvmti/AttachOnDemand/attach030 crashes on Win32
coleenp
parents: 10301
diff changeset
34 * @bug 8009728
10268
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
35 * @library /testlibrary
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
36 * @build Agent
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
37 * @run main ClassFileInstaller Agent
10301
17db82f22f1e 8014511: runtime/RedefineObject/TestRedefineObject.java has incorrect classname in @run tag
ctornqvi
parents: 10268
diff changeset
38 * @run main TestRedefineObject
12022
85147f28faba 8009728: nsk/jvmti/AttachOnDemand/attach030 crashes on Win32
coleenp
parents: 10301
diff changeset
39 * @run main/othervm -javaagent:agent.jar -XX:TraceRedefineClasses=5 Agent
10268
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
40 */
10301
17db82f22f1e 8014511: runtime/RedefineObject/TestRedefineObject.java has incorrect classname in @run tag
ctornqvi
parents: 10268
diff changeset
41 public class TestRedefineObject {
10268
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
42 public static void main(String[] args) throws Exception {
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
43
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
44 PrintWriter pw = new PrintWriter("MANIFEST.MF");
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
45 pw.println("Premain-Class: Agent");
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
46 pw.println("Can-Retransform-Classes: true");
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
47 pw.close();
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
48
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
49 ProcessBuilder pb = new ProcessBuilder();
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
50 pb.command(new String[] { JDKToolFinder.getJDKTool("jar"), "cmf", "MANIFEST.MF", "agent.jar", "Agent.class"});
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
51 pb.start().waitFor();
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
52 }
43083e670adf 8005056: NPG: Crash after redefining java.lang.Object
coleenp
parents:
diff changeset
53 }