--- old/src/share/classes/java/io/ObjectInputStream.java Wed Nov 30 09:35:45 2011 +++ new/src/share/classes/java/io/ObjectInputStream.java Wed Nov 30 09:35:44 2011 @@ -689,9 +689,9 @@ boolean hasNonPublicInterface = false; // define proxy in class loader of non-public interface(s), if any - Class[] classObjs = new Class[interfaces.length]; + Class[] classObjs = new Class[interfaces.length]; for (int i = 0; i < interfaces.length; i++) { - Class cl = Class.forName(interfaces[i], false, latestLoader); + Class cl = Class.forName(interfaces[i], false, latestLoader); if ((cl.getModifiers() & Modifier.PUBLIC) == 0) { if (hasNonPublicInterface) { if (nonPublicLoader != cl.getClassLoader()) { @@ -1229,7 +1229,7 @@ * "enableSubclassImplementation" SerializablePermission is checked. */ private void verifySubclass() { - Class cl = getClass(); + Class cl = getClass(); if (cl == ObjectInputStream.class) { return; } @@ -1473,12 +1473,12 @@ * ClassNotFoundException will be associated with the class' handle in the * handle table). */ - private Class readClass(boolean unshared) throws IOException { + private Class readClass(boolean unshared) throws IOException { if (bin.readByte() != TC_CLASS) { throw new InternalError(); } ObjectStreamClass desc = readClassDesc(false); - Class cl = desc.forClass(); + Class cl = desc.forClass(); passHandle = handles.assign(unshared ? unsharedMarker : cl); ClassNotFoundException resolveEx = desc.getResolveException(); @@ -1542,7 +1542,7 @@ ifaces[i] = bin.readUTF(); } - Class cl = null; + Class cl = null; ClassNotFoundException resolveEx = null; bin.setBlockDataMode(true); try { @@ -1586,7 +1586,7 @@ "failed to read class descriptor").initCause(ex); } - Class cl = null; + Class cl = null; ClassNotFoundException resolveEx = null; bin.setBlockDataMode(true); try { @@ -1643,7 +1643,7 @@ int len = bin.readInt(); Object array = null; - Class cl, ccl = null; + Class cl, ccl = null; if ((cl = desc.forClass()) != null) { ccl = cl.getComponentType(); array = Array.newInstance(ccl, len); @@ -1696,7 +1696,7 @@ * Reads in and returns enum constant, or null if enum type is * unresolvable. Sets passHandle to enum constant's assigned handle. */ - private Enum readEnum(boolean unshared) throws IOException { + private Enum readEnum(boolean unshared) throws IOException { if (bin.readByte() != TC_ENUM) { throw new InternalError(); } @@ -1713,11 +1713,13 @@ } String name = readString(false); - Enum en = null; - Class cl = desc.forClass(); + Enum result = null; + Class cl = desc.forClass(); if (cl != null) { try { - en = Enum.valueOf(cl, name); + @SuppressWarnings("unchecked") + Enum en = Enum.valueOf((Class)cl, name); + result = en; } catch (IllegalArgumentException ex) { throw (IOException) new InvalidObjectException( "enum constant " + name + " does not exist in " + @@ -1724,13 +1726,13 @@ cl).initCause(ex); } if (!unshared) { - handles.setObject(enumHandle, en); + handles.setObject(enumHandle, result); } } handles.finish(enumHandle); passHandle = enumHandle; - return en; + return result; } /** @@ -1941,7 +1943,7 @@ throws IOException { // REMIND: is isInstance check necessary? - Class cl = desc.forClass(); + Class cl = desc.forClass(); if (cl != null && obj != null && !cl.isInstance(obj)) { throw new ClassCastException(); } @@ -2140,7 +2142,7 @@ * class descriptor, returns -1. Throws IllegalArgumentException if * neither incoming nor local class descriptor contains a match. */ - private int getFieldOffset(String name, Class type) { + private int getFieldOffset(String name, Class type) { ObjectStreamField field = desc.getField(name, type); if (field != null) { return field.getOffset(); @@ -2838,6 +2840,7 @@ return readUTFBody(readUnsignedShort()); } + @SuppressWarnings("deprecation") public String readLine() throws IOException { return din.readLine(); // deprecated, not worth optimizing }