Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/javax/management/Introspector/NotCompliantCauseTest.java
38839 views
1
/*
2
* Copyright (c) 2006, 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
*/
23
24
/*
25
* @test NotCompliantCauseTest.java
26
* @bug 6374290
27
* @summary Test that NotCompliantMBeanException has a cause in case of
28
* type mapping problems.
29
* @author Daniel Fuchs, Alexander Shusherov
30
* @run clean NotCompliantCauseTest
31
* @run build NotCompliantCauseTest
32
* @run main NotCompliantCauseTest
33
*/
34
/*
35
* NotCompliantCauseTest.java
36
*
37
* Created on January 20, 2006, 2:56 PM / dfuchs
38
*
39
*/
40
41
import java.util.Random;
42
import java.util.logging.Logger;
43
44
import javax.management.MBeanServer;
45
import javax.management.MBeanServerFactory;
46
import javax.management.NotCompliantMBeanException;
47
import javax.management.ObjectName;
48
import javax.management.openmbean.OpenDataException;
49
50
/**
51
*
52
* @author Sun Microsystems, 2005 - All rights reserved.
53
*/
54
public class NotCompliantCauseTest {
55
56
/**
57
* A logger for this class.
58
**/
59
private static final Logger LOG =
60
Logger.getLogger(NotCompliantCauseTest.class.getName());
61
62
/**
63
* Creates a new instance of NotCompliantCauseTest
64
*/
65
public NotCompliantCauseTest() {
66
}
67
68
/**
69
* Test that NotCompliantMBeanException has a cause in case of
70
* type mapping problems.
71
**/
72
public static void main(String[] args) {
73
NotCompliantCauseTest instance = new NotCompliantCauseTest();
74
75
instance.test1();
76
}
77
78
public static class RuntimeTestException extends RuntimeException {
79
public RuntimeTestException(String msg) {
80
super(msg);
81
}
82
public RuntimeTestException(String msg, Throwable cause) {
83
super(msg,cause);
84
}
85
public RuntimeTestException(Throwable cause) {
86
super(cause);
87
}
88
}
89
90
/**
91
* Test that NotCompliantMBeanException has a cause in case of
92
* type mapping problems.
93
**/
94
void test1() {
95
try {
96
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
97
ObjectName oname = new ObjectName("domain:type=test");
98
99
mbs.createMBean(NotCompliant.class.getName(), oname);
100
System.err.println("ERROR: expected " +
101
"NotCompliantMBeanException not thrown");
102
throw new RuntimeTestException("NotCompliantMBeanException not thrown");
103
} catch (RuntimeTestException e) {
104
throw e;
105
} catch (NotCompliantMBeanException e) {
106
Throwable cause = e.getCause();
107
if (cause == null)
108
throw new RuntimeTestException("NotCompliantMBeanException " +
109
"doesn't have any cause.", e);
110
while (cause.getCause() != null) {
111
if (cause instanceof OpenDataException) break;
112
cause = cause.getCause();
113
}
114
if (! (cause instanceof OpenDataException))
115
throw new RuntimeTestException("NotCompliantMBeanException " +
116
"doesn't have expected cause ("+
117
OpenDataException.class.getName()+"): "+cause, e);
118
System.err.println("SUCCESS: Found expected cause: " + cause);
119
} catch (Exception e) {
120
System.err.println("Unexpected exception: " + e);
121
throw new RuntimeException("Unexpected exception: " + e,e);
122
}
123
}
124
125
public interface NotCompliantMXBean {
126
Random returnRandom();
127
}
128
129
public static class NotCompliant implements NotCompliantMXBean {
130
public Random returnRandom() {
131
return new Random();
132
}
133
}
134
135
}
136
137