--- a/jdk/src/share/classes/java/io/ObjectStreamClass.java Wed Feb 27 11:44:41 2013 +0000
+++ b/jdk/src/share/classes/java/io/ObjectStreamClass.java Mon Mar 04 14:34:15 2013 -0800
@@ -1151,7 +1151,14 @@
end = end.getSuperclass();
}
+ HashSet<String> oscNames = new HashSet<>(3);
+
for (ObjectStreamClass d = this; d != null; d = d.superDesc) {
+ if (oscNames.contains(d.name)) {
+ throw new InvalidClassException("Circular reference.");
+ } else {
+ oscNames.add(d.name);
+ }
// search up inheritance hierarchy for class with matching name
String searchName = (d.cl != null) ? d.cl.getName() : d.name;