diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | java/io/ObjectInputStream.java | 3 |
2 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,11 @@ +2010-05-20 Paul Viney <paul@diasoft.nl> + + PR classpath/44208 + * java/io/ObjectInputStream.java, + (parseContent(byte,boolean)): Ensure a handle + for the enum is registered before one for its + String constant. + 2009-12-30 Paul Fernhout <pdfernhout@kurtz-fernhout.com> PR classpath/42551 diff --git a/java/io/ObjectInputStream.java b/java/io/ObjectInputStream.java index dc56aff9d..545ff609d 100644 --- a/java/io/ObjectInputStream.java +++ b/java/io/ObjectInputStream.java @@ -518,12 +518,13 @@ public class ObjectInputStream extends InputStream if (dump) dumpElementln("ENUM="); ObjectStreamClass osc = (ObjectStreamClass) readObject(); + int enumHandle = assignNewHandle(null, shared); String constantName = (String) readObject(); if (dump) dumpElementln("CONSTANT NAME = " + constantName); Class clazz = osc.forClass(); Enum instance = Enum.valueOf(clazz, constantName); - assignNewHandle(instance,shared); + rememberHandle(instance, shared, enumHandle); ret_val = instance; break; } |