Index: java/io/ObjectInputStream.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/io/ObjectInputStream.java,v retrieving revision 1.42 diff -u -b -B -r1.42 ObjectInputStream.java --- java/io/ObjectInputStream.java 10 Jul 2004 07:57:31 -0000 1.42 +++ java/io/ObjectInputStream.java 22 Jul 2004 08:59:39 -0000 @@ -134,6 +134,9 @@ this.isDeserializing = true; byte marker = this.realInputStream.readByte(); + + depth += 2; + if(dump) dumpElement("MARKER: 0x" + Integer.toHexString(marker) + " "); try @@ -151,9 +154,9 @@ case TC_BLOCKDATALONG: { if (marker == TC_BLOCKDATALONG) - if(dump) dumpElementln("BLOCKDATALONG"); + { if(dump) dumpElementln("BLOCKDATALONG"); } else - if(dump) dumpElementln("BLOCKDATA"); + { if(dump) dumpElementln("BLOCKDATA"); } readNextBlock(marker); throw new StreamCorruptedException("Unexpected blockData"); } @@ -329,10 +332,10 @@ ("No end of block data seen for class with readObject (ObjectInputStream) method."); if(dump) dumpElementln("yes"); } - catch (EOFException e) - { - if(dump) dumpElementln("no, got EOFException"); - } +// catch (EOFException e) +// { +// if(dump) dumpElementln("no, got EOFException"); +// } catch (IOException e) { if(dump) dumpElementln("no, got IOException"); @@ -347,6 +350,7 @@ this.currentObject = null; this.currentObjectStreamClass = null; ret_val = processResolution(osc, obj, handle); + break; } @@ -375,6 +379,8 @@ this.isDeserializing = was_deserializing; + depth -= 2; + if (! was_deserializing) { if (validators.size() > 0) @@ -1838,6 +1844,9 @@ private static boolean dump = false && Configuration.DEBUG; + // The nesting depth for debugging output + private int depth = 0; + private void dumpElement (String msg) { System.out.print(msg); @@ -1846,6 +1855,9 @@ private void dumpElementln (String msg) { System.out.println(msg); + for (int i = 0; i < depth; i++) + System.out.print (" "); + System.out.print (Thread.currentThread() + ": "); } static Index: java/io/ObjectOutputStream.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/io/ObjectOutputStream.java,v retrieving revision 1.44 diff -u -b -B -r1.44 ObjectOutputStream.java --- java/io/ObjectOutputStream.java 15 Jul 2004 12:13:39 -0000 1.44 +++ java/io/ObjectOutputStream.java 22 Jul 2004 08:59:40 -0000 @@ -333,8 +333,6 @@ if (obj instanceof Serializable) { - Object prevObject = this.currentObject; - ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; currentObject = obj; ObjectStreamClass[] hierarchy = ObjectStreamClass.getObjectStreamClasses(clazz); @@ -363,8 +361,8 @@ } } - this.currentObject = prevObject; - this.currentObjectStreamClass = prevObjectStreamClass; + currentObject = null; + currentObjectStreamClass = null; currentPutField = null; break; }