annotate test/runtime/contended/Inheritance1.java @ 10374:87c64c0438fb

6976350: G1: deal with fragmentation while copying objects during GC Summary: Create G1ParGCAllocBufferContainer to contain two buffers instead of previously using one buffer, in order to hold the first priority buffer longer. Thus, when some large objects hits the value of free space left in the first priority buffer it has an alternative to fit in the second priority buffer while the first priority buffer is given more chances to try allocating smaller objects. Overall, it will improve heap space efficiency. Reviewed-by: johnc, jmasa, brutisso Contributed-by: tamao <tao.mao@oracle.com>
author tamao
date Mon, 03 Jun 2013 14:37:13 -0700
parents 205dd30230e1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10303
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
1 /*
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
4 *
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
7 * published by the Free Software Foundation.
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
8 *
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
13 * accompanied this code).
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
14 *
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
18 *
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
21 * questions.
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
22 */
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
23
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
24 import java.io.BufferedReader;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
25 import java.io.InputStreamReader;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
26 import java.lang.Class;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
27 import java.lang.String;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
28 import java.lang.System;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
29 import java.lang.management.ManagementFactory;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
30 import java.lang.management.RuntimeMXBean;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
31 import java.util.ArrayList;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
32 import java.util.List;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
33 import java.util.concurrent.CyclicBarrier;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
34 import java.util.regex.Matcher;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
35 import java.util.regex.Pattern;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
36 import java.lang.reflect.Field;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
37 import java.lang.reflect.Modifier;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
38 import sun.misc.Unsafe;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
39 import sun.misc.Contended;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
40
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
41 /*
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
42 * @test
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
43 * @bug 8012939
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
44 * @summary \@Contended doesn't work correctly with inheritance
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
45 *
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
46 * @run main/othervm -XX:-RestrictContended Inheritance1
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
47 */
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
48 public class Inheritance1 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
49
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
50 private static final Unsafe U;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
51 private static int ADDRESS_SIZE;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
52 private static int HEADER_SIZE;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
53
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
54 static {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
55 // steal Unsafe
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
56 try {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
57 Field unsafe = Unsafe.class.getDeclaredField("theUnsafe");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
58 unsafe.setAccessible(true);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
59 U = (Unsafe) unsafe.get(null);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
60 } catch (NoSuchFieldException | IllegalAccessException e) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
61 throw new IllegalStateException(e);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
62 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
63
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
64 // When running with CompressedOops on 64-bit platform, the address size
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
65 // reported by Unsafe is still 8, while the real reference fields are 4 bytes long.
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
66 // Try to guess the reference field size with this naive trick.
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
67 try {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
68 long off1 = U.objectFieldOffset(CompressedOopsClass.class.getField("obj1"));
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
69 long off2 = U.objectFieldOffset(CompressedOopsClass.class.getField("obj2"));
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
70 ADDRESS_SIZE = (int) Math.abs(off2 - off1);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
71 HEADER_SIZE = (int) Math.min(off1, off2);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
72 } catch (NoSuchFieldException e) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
73 ADDRESS_SIZE = -1;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
74 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
75 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
76
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
77 static class CompressedOopsClass {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
78 public Object obj1;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
79 public Object obj2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
80 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
81
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
82 public static boolean arePaddedPairwise(Class klass, String field1, String field2) throws Exception {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
83 Field f1 = klass.getField(field1);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
84 Field f2 = klass.getField(field2);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
85
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
86 int diff = offset(f1) - offset(f2);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
87 if (diff < 0) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
88 // f1 is first
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
89 return (offset(f2) - (offset(f1) + getSize(f1))) > 64;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
90 } else {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
91 // f2 is first
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
92 return (offset(f1) - (offset(f2) + getSize(f2))) > 64;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
93 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
94 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
95
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
96 public static boolean sameLayout(Class klass1, Class klass2) throws Exception {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
97 for (Field f1 : klass1.getDeclaredFields()) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
98 Field f2 = klass2.getDeclaredField(f1.getName());
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
99 if (offset(f1) != offset(f2)) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
100 return false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
101 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
102 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
103
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
104 for (Field f2 : klass1.getDeclaredFields()) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
105 Field f1 = klass2.getDeclaredField(f2.getName());
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
106 if (offset(f1) != offset(f2)) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
107 return false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
108 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
109 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
110
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
111 return true;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
112 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
113
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
114 public static boolean isStatic(Field field) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
115 return Modifier.isStatic(field.getModifiers());
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
116 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
117
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
118 public static int offset(Field field) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
119 if (isStatic(field)) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
120 return (int) U.staticFieldOffset(field);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
121 } else {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
122 return (int) U.objectFieldOffset(field);
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
123 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
124 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
125
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
126 public static int getSize(Field field) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
127 Class type = field.getType();
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
128 if (type == byte.class) { return 1; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
129 if (type == boolean.class) { return 1; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
130 if (type == short.class) { return 2; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
131 if (type == char.class) { return 2; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
132 if (type == int.class) { return 4; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
133 if (type == float.class) { return 4; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
134 if (type == long.class) { return 8; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
135 if (type == double.class) { return 8; }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
136 return ADDRESS_SIZE;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
137 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
138
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
139 public static void main(String[] args) throws Exception {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
140 boolean endResult = true;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
141
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
142 // --------------- INSTANCE FIELDS ---------------------
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
143
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
144 if (!arePaddedPairwise(A2_R1.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
145 System.err.println("A2_R1 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
146 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
147 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
148
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
149 if (!arePaddedPairwise(A3_R1.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
150 System.err.println("A3_R1 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
151 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
152 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
153
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
154 if (!arePaddedPairwise(A1_R2.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
155 System.err.println("A1_R2 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
156 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
157 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
158
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
159 if (!arePaddedPairwise(A2_R2.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
160 System.err.println("A2_R2 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
161 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
162 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
163
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
164 if (!arePaddedPairwise(A3_R2.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
165 System.err.println("A3_R2 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
166 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
167 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
168
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
169 if (!arePaddedPairwise(A1_R3.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
170 System.err.println("A1_R3 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
171 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
172 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
173
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
174 if (!arePaddedPairwise(A2_R3.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
175 System.err.println("A2_R3 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
176 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
177 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
178
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
179 if (!arePaddedPairwise(A3_R3.class, "int1", "int2")) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
180 System.err.println("A3_R3 failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
181 endResult &= false;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
182 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
183
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
184 System.out.println(endResult ? "Test PASSES" : "Test FAILS");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
185 if (!endResult) {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
186 throw new Error("Test failed");
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
187 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
188 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
189
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
190 public static class R1 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
191 public int int1;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
192 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
193
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
194 public static class R2 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
195 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
196 public int int1;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
197 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
198
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
199 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
200 public static class R3 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
201 public int int1;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
202 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
203
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
204 public static class A1_R1 extends R1 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
205 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
206 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
207
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
208 public static class A2_R1 extends R1 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
209 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
210 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
211 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
212
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
213 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
214 public static class A3_R1 extends R1 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
215 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
216 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
217
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
218 public static class A1_R2 extends R2 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
219 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
220 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
221
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
222 public static class A2_R2 extends R2 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
223 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
224 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
225 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
226
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
227 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
228 public static class A3_R2 extends R2 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
229 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
230 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
231
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
232 public static class A1_R3 extends R3 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
233 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
234 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
235
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
236 public static class A2_R3 extends R3 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
237 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
238 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
239 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
240
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
241 @Contended
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
242 public static class A3_R3 extends R3 {
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
243 public int int2;
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
244 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
245
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
246
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
247 }
205dd30230e1 8012939: @Contended doesn't work correctly with inheritance
shade
parents:
diff changeset
248