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
26 * @bug 6222826
27 * @summary Test that tasks are cancelled properly when
28 * monitors are started and stopped in a loop.
29 * @author Luis-Miguel Alventosa
30 *
31 * @library /lib/testlibrary
32 *
33 * @build jdk.testlibrary.*
34 * @run clean StartStopTest
35 * @run build StartStopTest
36 * @run main/othervm/timeout=300 StartStopTest 1
37 * @run main/othervm/timeout=300 StartStopTest 2
38 * @run main/othervm/timeout=300 StartStopTest 3
39 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=5 StartStopTest 1
40 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=5 StartStopTest 2
41 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=5 StartStopTest 3
42 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=-5 StartStopTest 1
43 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=-5 StartStopTest 2
44 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=-5 StartStopTest 3
45 */
46
47 import java.util.concurrent.atomic.AtomicInteger;
48 import javax.management.MBeanServer;
49 import javax.management.MBeanServerFactory;
50 import javax.management.Notification;
51 import javax.management.NotificationListener;
52 import javax.management.ObjectName;
53 import javax.management.monitor.CounterMonitor;
54 import javax.management.monitor.GaugeMonitor;
55 import javax.management.monitor.Monitor;
56 import javax.management.monitor.MonitorNotification;
57 import javax.management.monitor.StringMonitor;
58
59 import jdk.testlibrary.Utils;
60
61 public class StartStopTest {
62 static int maxPoolSize;
63 static final AtomicInteger counter = new AtomicInteger();
64
65 // MBean class
66 public class ObservedObject implements ObservedObjectMBean {
67 volatile public boolean called = false;
68 public Integer getInteger() {
69 task("Integer");
70 return 0;
71 }
72 public Double getDouble() {
73 task("Double");
74 return 0.0;
75 }
76 public String getString() {
77 task("String");
78 return "";
79 }
|
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
26 * @bug 6222826
27 * @summary Test that tasks are cancelled properly when
28 * monitors are started and stopped in a loop.
29 * @author Luis-Miguel Alventosa
30 *
31 * @library /test/lib
32 *
33 * @run clean StartStopTest
34 * @run build StartStopTest
35 * @run main/othervm/timeout=300 StartStopTest 1
36 * @run main/othervm/timeout=300 StartStopTest 2
37 * @run main/othervm/timeout=300 StartStopTest 3
38 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=5 StartStopTest 1
39 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=5 StartStopTest 2
40 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=5 StartStopTest 3
41 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=-5 StartStopTest 1
42 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=-5 StartStopTest 2
43 * @run main/othervm/timeout=300 -Djmx.x.monitor.maximum.pool.size=-5 StartStopTest 3
44 */
45
46 import java.util.concurrent.atomic.AtomicInteger;
47 import javax.management.MBeanServer;
48 import javax.management.MBeanServerFactory;
49 import javax.management.Notification;
50 import javax.management.NotificationListener;
51 import javax.management.ObjectName;
52 import javax.management.monitor.CounterMonitor;
53 import javax.management.monitor.GaugeMonitor;
54 import javax.management.monitor.Monitor;
55 import javax.management.monitor.MonitorNotification;
56 import javax.management.monitor.StringMonitor;
57
58 import jdk.test.lib.Utils;
59
60 public class StartStopTest {
61 static int maxPoolSize;
62 static final AtomicInteger counter = new AtomicInteger();
63
64 // MBean class
65 public class ObservedObject implements ObservedObjectMBean {
66 volatile public boolean called = false;
67 public Integer getInteger() {
68 task("Integer");
69 return 0;
70 }
71 public Double getDouble() {
72 task("Double");
73 return 0.0;
74 }
75 public String getString() {
76 task("String");
77 return "";
78 }
|