aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchegar <none@none>2013-07-29 14:58:48 +0100
committerchegar <none@none>2013-07-29 14:58:48 +0100
commit0499763d920606c8211d91280225a5b4a0daa868 (patch)
tree0a82dd18bf08686761edd970df2234ddc2816f34
parent264320f005dc1aac69078f8972ce14c31bc56ef6 (diff)
parent85fdbd73526fad9bdb2bf52859f838961d9fdd9c (diff)
Merge
-rw-r--r--src/share/classes/javax/management/MBeanNotificationInfo.java7
-rw-r--r--src/share/classes/javax/management/remote/NotificationResult.java17
-rw-r--r--src/share/classes/javax/management/remote/TargetedNotification.java8
-rw-r--r--test/javax/management/remote/mandatory/loading/MissingClassTest.java2
4 files changed, 13 insertions, 21 deletions
diff --git a/src/share/classes/javax/management/MBeanNotificationInfo.java b/src/share/classes/javax/management/MBeanNotificationInfo.java
index dfa4ab1f8..e3b4aba12 100644
--- a/src/share/classes/javax/management/MBeanNotificationInfo.java
+++ b/src/share/classes/javax/management/MBeanNotificationInfo.java
@@ -210,11 +210,6 @@ public class MBeanNotificationInfo extends MBeanFeatureInfo implements Cloneable
ObjectInputStream.GetField gf = ois.readFields();
String[] t = (String[])gf.get("types", null);
- if (t == null) {
- throw new InvalidObjectException("Trying to deserialize an invalid " +
- "instance of " + MBeanNotificationInfo.class +
- "[types=null]");
- }
- types = t.length == 0 ? t : t.clone();
+ types = (t != null && t.length != 0) ? t.clone() : NO_TYPES;
}
}
diff --git a/src/share/classes/javax/management/remote/NotificationResult.java b/src/share/classes/javax/management/remote/NotificationResult.java
index 9e7cfaac3..ff3978d99 100644
--- a/src/share/classes/javax/management/remote/NotificationResult.java
+++ b/src/share/classes/javax/management/remote/NotificationResult.java
@@ -132,16 +132,17 @@ public class NotificationResult implements Serializable {
}
private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {
- ObjectInputStream.GetField gf = ois.readFields();
- TargetedNotification[] tNotifs = (TargetedNotification[])gf.get("targetedNotifications", null);
- long snStart = gf.get("earliestSequenceNumber", -1L);
- long snNext = gf.get("nextSequenceNumber", -1L);
+ ois.defaultReadObject();
try {
- validate(tNotifs, snStart, snNext);
+ validate(
+ this.targetedNotifications,
+ this.earliestSequenceNumber,
+ this.nextSequenceNumber
+ );
- this.targetedNotifications = tNotifs.length == 0 ? tNotifs : tNotifs.clone();
- this.earliestSequenceNumber = snStart;
- this.nextSequenceNumber = snNext;
+ this.targetedNotifications = this.targetedNotifications.length == 0 ?
+ this.targetedNotifications :
+ this.targetedNotifications.clone();
} catch (IllegalArgumentException e) {
throw new InvalidObjectException(e.getMessage());
}
diff --git a/src/share/classes/javax/management/remote/TargetedNotification.java b/src/share/classes/javax/management/remote/TargetedNotification.java
index 03aa0ca62..cc3d0dcc6 100644
--- a/src/share/classes/javax/management/remote/TargetedNotification.java
+++ b/src/share/classes/javax/management/remote/TargetedNotification.java
@@ -132,13 +132,9 @@ public class TargetedNotification implements Serializable {
// }
private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {
- ObjectInputStream.GetField gf = ois.readFields();
- Notification notification = (Notification)gf.get("notif", null);
- Integer listenerId = (Integer)gf.get("id", null);
+ ois.defaultReadObject();
try {
- validate(notification, listenerId);
- this.notif = notification;
- this.id = listenerId;
+ validate(this.notif, this.id);
} catch (IllegalArgumentException e) {
throw new InvalidObjectException(e.getMessage());
}
diff --git a/test/javax/management/remote/mandatory/loading/MissingClassTest.java b/test/javax/management/remote/mandatory/loading/MissingClassTest.java
index e70d0adfe..98eead895 100644
--- a/test/javax/management/remote/mandatory/loading/MissingClassTest.java
+++ b/test/javax/management/remote/mandatory/loading/MissingClassTest.java
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 4915825 4921009 4934965 4977469
+ * @bug 4915825 4921009 4934965 4977469 8019584
* @summary Tests behavior when client or server gets object of unknown class
* @author Eamonn McManus
* @run clean MissingClassTest SingleClassLoader