diff options
Diffstat (limited to 'java/io/ObjectInputStream.java')
-rw-r--r-- | java/io/ObjectInputStream.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/java/io/ObjectInputStream.java b/java/io/ObjectInputStream.java index 771222ad5..18ff95f05 100644 --- a/java/io/ObjectInputStream.java +++ b/java/io/ObjectInputStream.java @@ -432,7 +432,23 @@ public class ObjectInputStream extends InputStream clearHandles(); throw new WriteAbortedException("Exception thrown during writing of stream", e); } - + + case TC_ENUM: + { + /* TC_ENUM classDesc newHandle enumConstantName */ + if (dump) + dumpElementln("ENUM="); + ObjectStreamClass osc = (ObjectStreamClass) readObject(); + String constantName = (String) readObject(); + if (dump) + dumpElementln("CONSTANT NAME = " + constantName); + Class clazz = osc.forClass(); + Enum instance = Enum.valueOf(clazz, constantName); + assignNewHandle(instance); + ret_val = instance; + break; + } + default: throw new IOException("Unknown marker on stream: " + marker); } |