diff options
author | chegar <none@none> | 2013-07-29 14:58:48 +0100 |
---|---|---|
committer | chegar <none@none> | 2013-07-29 14:58:48 +0100 |
commit | 0499763d920606c8211d91280225a5b4a0daa868 (patch) | |
tree | 0a82dd18bf08686761edd970df2234ddc2816f34 /src | |
parent | 264320f005dc1aac69078f8972ce14c31bc56ef6 (diff) | |
parent | 85fdbd73526fad9bdb2bf52859f838961d9fdd9c (diff) |
Merge
Diffstat (limited to 'src')
3 files changed, 12 insertions, 20 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()); } |