test/javax/management/monitor/AttributeArbitraryDataTypeTest.java
Print this page
@@ -56,13 +56,13 @@
import javax.management.openmbean.SimpleType;
public class AttributeArbitraryDataTypeTest implements NotificationListener {
// Flag to notify that a message has been received
- private boolean counterMessageReceived = false;
- private boolean gaugeMessageReceived = false;
- private boolean stringMessageReceived = false;
+ private volatile boolean counterMessageReceived = false;
+ private volatile boolean gaugeMessageReceived = false;
+ private volatile boolean stringMessageReceived = false;
// Match enum
public enum Match { do_not_match_0,
do_not_match_1,
do_not_match_2,
@@ -193,25 +193,37 @@
THRESHOLD_VALUE_EXCEEDED)) {
echo("\t\t" + n.getObservedAttribute() +
" has reached or exceeded the threshold");
echo("\t\tDerived Gauge = " + n.getDerivedGauge());
echo("\t\tTrigger = " + n.getTrigger());
+
+ synchronized (this) {
counterMessageReceived = true;
+ notifyAll();
+ }
} else if (type.equals(MonitorNotification.
THRESHOLD_HIGH_VALUE_EXCEEDED)) {
echo("\t\t" + n.getObservedAttribute() +
" has reached or exceeded the high threshold");
echo("\t\tDerived Gauge = " + n.getDerivedGauge());
echo("\t\tTrigger = " + n.getTrigger());
+
+ synchronized (this) {
gaugeMessageReceived = true;
+ notifyAll();
+ }
} else if (type.equals(MonitorNotification.
STRING_TO_COMPARE_VALUE_MATCHED)) {
echo("\t\t" + n.getObservedAttribute() +
" matches the string-to-compare value");
echo("\t\tDerived Gauge = " + n.getDerivedGauge());
echo("\t\tTrigger = " + n.getTrigger());
+
+ synchronized (this) {
stringMessageReceived = true;
+ notifyAll();
+ }
} else {
echo("\t\tSkipping notification of type: " + type);
}
} catch (Exception e) {
echo("\tError in handleNotification!");
@@ -356,10 +368,21 @@
break;
}
// Check if notification was received
//
+ synchronized (this) {
+ while (!counterMessageReceived) {
+ try {
+ wait();
+ } catch (InterruptedException e) {
+ System.err.println("Got unexpected exception: " + e);
+ e.printStackTrace();
+ break;
+ }
+ }
+ }
if (counterMessageReceived) {
echo("\tOK: CounterMonitor notification received");
} else {
echo("\tKO: CounterMonitor notification missed or not emitted");
return 1;
@@ -523,10 +546,21 @@
break;
}
// Check if notification was received
//
+ synchronized (this) {
+ while (!gaugeMessageReceived) {
+ try {
+ wait();
+ } catch (InterruptedException e) {
+ System.err.println("Got unexpected exception: " + e);
+ e.printStackTrace();
+ break;
+ }
+ }
+ }
if (gaugeMessageReceived) {
echo("\tOK: GaugeMonitor notification received");
} else {
echo("\tKO: GaugeMonitor notification missed or not emitted");
return 1;
@@ -678,10 +712,21 @@
break;
}
// Check if notification was received
//
+ synchronized (this) {
+ while (!stringMessageReceived) {
+ try {
+ wait();
+ } catch (InterruptedException e) {
+ System.err.println("Got unexpected exception: " + e);
+ e.printStackTrace();
+ break;
+ }
+ }
+ }
if (stringMessageReceived) {
echo("\tOK: StringMonitor notification received");
} else {
echo("\tKO: StringMonitor notification missed or not emitted");
return 1;