diff --git a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java index 92e90afb9ae..830fd648df5 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java @@ -1012,7 +1012,11 @@ public class IIOPInputStream * else, * Handle it as a serializable class. */ - if (currentClassDesc.isExternalizable()) { + if (Enum.class.isAssignableFrom( clz )) { + int ordinal = orbStream.read_long() ; + String value = (String)orbStream.read_value( String.class ) ; + return Enum.valueOf( clz, value ) ; + } else if (currentClassDesc.isExternalizable()) { try { currentObject = (currentClass == null) ? null : currentClassDesc.newInstance();