summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/openjdk/8019584-invalid_notification_fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/8019584-invalid_notification_fix.patch')
-rw-r--r--java/openjdk6/files/icedtea/openjdk/8019584-invalid_notification_fix.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/8019584-invalid_notification_fix.patch b/java/openjdk6/files/icedtea/openjdk/8019584-invalid_notification_fix.patch
new file mode 100644
index 000000000000..bbbc168a683d
--- /dev/null
+++ b/java/openjdk6/files/icedtea/openjdk/8019584-invalid_notification_fix.patch
@@ -0,0 +1,69 @@
+# HG changeset patch
+# User jbachorik
+# Date 1374244166 -7200
+# Fri Jul 19 16:29:26 2013 +0200
+# Node ID 42cdf6988c2b81b322bf89778ddeb47265cd3bba
+# Parent a8132d72370c1f2467c9bb966d9355b387c35039
+8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null
+Reviewed-by: mchung, sjiang, dfuchs, ahgross
+
+diff -r a8132d72370c -r 42cdf6988c2b src/share/classes/javax/management/remote/NotificationResult.java
+--- jdk/src/share/classes/javax/management/remote/NotificationResult.java Mon Jul 15 16:00:57 2013 +0100
++++ jdk/src/share/classes/javax/management/remote/NotificationResult.java Fri Jul 19 16:29:26 2013 +0200
+@@ -132,16 +132,17 @@
+ }
+
+ 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 -r a8132d72370c -r 42cdf6988c2b src/share/classes/javax/management/remote/TargetedNotification.java
+--- jdk/src/share/classes/javax/management/remote/TargetedNotification.java Mon Jul 15 16:00:57 2013 +0100
++++ jdk/src/share/classes/javax/management/remote/TargetedNotification.java Fri Jul 19 16:29:26 2013 +0200
+@@ -132,13 +132,9 @@
+ // }
+
+ 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 -r a8132d72370c -r 42cdf6988c2b test/javax/management/remote/mandatory/loading/MissingClassTest.java
+--- jdk/test/javax/management/remote/mandatory/loading/MissingClassTest.java Mon Jul 15 16:00:57 2013 +0100
++++ jdk/test/javax/management/remote/mandatory/loading/MissingClassTest.java Fri Jul 19 16:29:26 2013 +0200
+@@ -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