1 /*
2 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
42 public static class Thing1 {
43 public static int getThingNumber() {
44 return 1;
45 }
46 };
47 public static class Thing1Handler {
48 public static int getThingNumber() {
49 return Thing1.getThingNumber();
50 }
51 };
52
53 public static void main(String... args) throws Exception {
54 Thing1Handler.getThingNumber();
55 }
56 }
57
58 public static void main(String... args) throws Exception {
59
60 // (1) classresolve should turn on.
61 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
62 "-Xlog:classresolve=info", ClassResolutionTestMain.class.getName());
63 OutputAnalyzer o = new OutputAnalyzer(pb.start());
64 o.shouldContain("[classresolve] ClassResolutionTest$ClassResolutionTestMain$Thing1Handler ClassResolutionTest$ClassResolutionTestMain$Thing1");
65
66 // (2) classresolve should turn off.
67 pb = ProcessTools.createJavaProcessBuilder(
68 "-Xlog", "-Xlog:classresolve=off", ClassResolutionTestMain.class.getName());
69 o = new OutputAnalyzer(pb.start());
70 o.shouldNotContain("[classresolve]");
71
72 // (3) TraceClassResolution should turn on.
73 pb = ProcessTools.createJavaProcessBuilder(
74 "-XX:+TraceClassResolution", ClassResolutionTestMain.class.getName());
75 o = new OutputAnalyzer(pb.start());
76 o.shouldContain("[classresolve] ClassResolutionTest$ClassResolutionTestMain$Thing1Handler ClassResolutionTest$ClassResolutionTestMain$Thing1");
77
78 // (4) TraceClassResolution should turn off.
79 pb = ProcessTools.createJavaProcessBuilder(
80 "-Xlog", "-XX:-TraceClassResolution", ClassResolutionTestMain.class.getName());
81 o = new OutputAnalyzer(pb.start());
82 o.shouldNotContain("[classresolve]");
83
84
85 };
86 }
|
1 /*
2 * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
42 public static class Thing1 {
43 public static int getThingNumber() {
44 return 1;
45 }
46 };
47 public static class Thing1Handler {
48 public static int getThingNumber() {
49 return Thing1.getThingNumber();
50 }
51 };
52
53 public static void main(String... args) throws Exception {
54 Thing1Handler.getThingNumber();
55 }
56 }
57
58 public static void main(String... args) throws Exception {
59
60 // (1) classresolve should turn on.
61 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
62 "-Xlog:classresolve=info", "-Xshare:off",
63 ClassResolutionTestMain.class.getName());
64 OutputAnalyzer o = new OutputAnalyzer(pb.start());
65 o.shouldContain("[classresolve] ClassResolutionTest$ClassResolutionTestMain$Thing1Handler ClassResolutionTest$ClassResolutionTestMain$Thing1");
66
67 // (2) classresolve should turn off.
68 pb = ProcessTools.createJavaProcessBuilder(
69 "-Xlog", "-Xlog:classresolve=off", "-Xshare:off",
70 ClassResolutionTestMain.class.getName());
71 o = new OutputAnalyzer(pb.start());
72 o.shouldNotContain("[classresolve]");
73
74 // (3) TraceClassResolution should turn on.
75 pb = ProcessTools.createJavaProcessBuilder(
76 "-XX:+TraceClassResolution", "-Xshare:off",
77 ClassResolutionTestMain.class.getName());
78 o = new OutputAnalyzer(pb.start());
79 o.shouldContain("[classresolve] ClassResolutionTest$ClassResolutionTestMain$Thing1Handler ClassResolutionTest$ClassResolutionTestMain$Thing1");
80
81 // (4) TraceClassResolution should turn off.
82 pb = ProcessTools.createJavaProcessBuilder(
83 "-Xlog", "-XX:-TraceClassResolution", "-Xshare:off",
84 ClassResolutionTestMain.class.getName());
85 o = new OutputAnalyzer(pb.start());
86 o.shouldNotContain("[classresolve]");
87
88
89 };
90 }
|