diff options
author | Mark Wielaard <mark@gcc.gnu.org> | 2003-03-01 15:05:46 +0000 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2003-03-01 15:05:46 +0000 |
commit | d91996637fe4a43743af1b2ebcdda4ce8e473a03 (patch) | |
tree | e5decafcdd4c08aee2930324e407189cd7b6a830 /libjava/java/io/ObjectInputStream.java | |
parent | 5793b27668ae1b63e6518f84eab151ad66890eec (diff) | |
download | gcc-d91996637fe4a43743af1b2ebcdda4ce8e473a03.zip gcc-d91996637fe4a43743af1b2ebcdda4ce8e473a03.tar.gz gcc-d91996637fe4a43743af1b2ebcdda4ce8e473a03.tar.bz2 |
ObjectInputStream.java: Reindent.
* java/io/ObjectInputStream.java: Reindent.
* java/io/ObjectOutputStream.java: Likewise.
From-SVN: r63614
Diffstat (limited to 'libjava/java/io/ObjectInputStream.java')
-rw-r--r-- | libjava/java/io/ObjectInputStream.java | 845 |
1 files changed, 412 insertions, 433 deletions
diff --git a/libjava/java/io/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java index f2b2df8e..38c790a 100644 --- a/libjava/java/io/ObjectInputStream.java +++ b/libjava/java/io/ObjectInputStream.java @@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. - + GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU @@ -146,11 +146,11 @@ public class ObjectInputStream extends InputStream is_consumed = true; break; } - + case TC_BLOCKDATA: case TC_BLOCKDATALONG: { - if (marker == TC_BLOCKDATALONG) + if (marker == TC_BLOCKDATALONG) dumpElementln ("BLOCKDATALONG"); else dumpElementln ("BLOCKDATA"); @@ -164,7 +164,7 @@ public class ObjectInputStream extends InputStream ret_val = null; break; } - + case TC_REFERENCE: { dumpElement ("REFERENCE "); @@ -174,7 +174,7 @@ public class ObjectInputStream extends InputStream this.objectLookupTable.get (oid)).object; break; } - + case TC_CLASS: { dumpElementln ("CLASS"); @@ -229,7 +229,6 @@ public class ObjectInputStream extends InputStream short field_count = this.realInputStream.readShort (); dumpElementln (Short.toString(field_count)); ObjectStreamField[] fields = new ObjectStreamField[field_count]; - ObjectStreamClass osc = new ObjectStreamClass (name, uid, flags, fields); assignNewHandle (osc); @@ -272,7 +271,7 @@ public class ObjectInputStream extends InputStream ret_val = osc; break; } - + case TC_STRING: case TC_LONGSTRING: { @@ -357,9 +356,6 @@ public class ObjectInputStream extends InputStream || Modifier.isAbstract (first_nonserial.getModifiers ())) first_nonserial = first_nonserial.getSuperclass (); - // DEBUGln ("Using " + first_nonserial - // + " as starting point for constructing " + clazz); - Object obj = null; obj = newObject (clazz, first_nonserial); @@ -372,8 +368,6 @@ public class ObjectInputStream extends InputStream ObjectStreamClass[] hierarchy = ObjectStreamClass.getObjectStreamClasses (clazz); - // DEBUGln ("Got class hierarchy of depth " + hierarchy.length); - boolean has_read; for (int i=0; i < hierarchy.length; i++) { @@ -428,13 +422,13 @@ public class ObjectInputStream extends InputStream ret_val = processResolution (obj, handle); break; } - + case TC_RESET: dumpElementln ("RESET"); clearHandles (); ret_val = readObject (); break; - + case TC_EXCEPTION: { dumpElement ("EXCEPTION="); @@ -443,10 +437,9 @@ public class ObjectInputStream extends InputStream clearHandles (); throw new WriteAbortedException ("Exception thrown during writing of stream", e); } - + default: throw new IOException ("Unknown marker on stream: " + marker); - } } finally @@ -464,7 +457,6 @@ public class ObjectInputStream extends InputStream return ret_val; } - /** Reads the current objects non-transient, non-static fields from @@ -665,11 +657,11 @@ public class ObjectInputStream extends InputStream public int read () throws IOException { if (this.readDataFromBlock) - { - if (this.blockDataPosition >= this.blockDataBytes) - readNextBlock (); - return (this.blockData[this.blockDataPosition++] & 0xff); - } + { + if (this.blockDataPosition >= this.blockDataBytes) + readNextBlock (); + return (this.blockData[this.blockDataPosition++] & 0xff); + } else return this.realInputStream.read (); } @@ -677,26 +669,26 @@ public class ObjectInputStream extends InputStream public int read (byte[] data, int offset, int length) throws IOException { if (this.readDataFromBlock) - { - if (this.blockDataPosition + length > this.blockDataBytes) - { - int remain = this.blockDataBytes - this.blockDataPosition; - if (remain != 0) - { - System.arraycopy (this.blockData, this.blockDataPosition, - data, offset, remain); - offset += remain; - length -= remain; - } - readNextBlock (); - } + { + if (this.blockDataPosition + length > this.blockDataBytes) + { + int remain = this.blockDataBytes - this.blockDataPosition; + if (remain != 0) + { + System.arraycopy (this.blockData, this.blockDataPosition, + data, offset, remain); + offset += remain; + length -= remain; + } + readNextBlock (); + } - System.arraycopy (this.blockData, this.blockDataPosition, - data, offset, length); - blockDataPosition += length; + System.arraycopy (this.blockData, this.blockDataPosition, + data, offset, length); + this.blockDataPosition += length; - return length; - } + return length; + } else return this.realInputStream.read (data, offset, length); } @@ -704,12 +696,12 @@ public class ObjectInputStream extends InputStream public int available () throws IOException { if (this.readDataFromBlock) - { - if (this.blockDataPosition >= this.blockDataBytes) - readNextBlock (); + { + if (this.blockDataPosition >= this.blockDataBytes) + readNextBlock (); - return this.blockDataBytes - this.blockDataPosition; - } + return this.blockDataBytes - this.blockDataPosition; + } else return this.realInputStream.available (); } @@ -864,174 +856,174 @@ public class ObjectInputStream extends InputStream setBlockDataMode (oldmode); return new GetField () - { - public ObjectStreamClass getObjectStreamClass () { - return clazz; - } + public ObjectStreamClass getObjectStreamClass () + { + return clazz; + } - public boolean defaulted (String name) - throws IOException, IllegalArgumentException - { - return clazz.getField (name) == null; - } + public boolean defaulted (String name) + throws IOException, IllegalArgumentException + { + return clazz.getField (name) == null; + } - public boolean get (String name, boolean defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Boolean.TYPE); + public boolean get (String name, boolean defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Boolean.TYPE); - if (field == null) - return defvalue; + if (field == null) + return defvalue; - return prim_field_data[field.getOffset ()] == 0 ? false : true; - } + return prim_field_data[field.getOffset ()] == 0 ? false : true; + } - public char get (String name, char defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Character.TYPE); + public char get (String name, char defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Character.TYPE); - if (field == null) - return defvalue; + if (field == null) + return defvalue; - int off = field.getOffset (); + int off = field.getOffset (); - return (char)(((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } + return (char)(((prim_field_data[off++] & 0xFF) << 8) + | (prim_field_data[off] & 0xFF)); + } - public byte get (String name, byte defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Byte.TYPE); + public byte get (String name, byte defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Byte.TYPE); - if (field == null) - return defvalue; + if (field == null) + return defvalue; - return prim_field_data[field.getOffset ()]; - } + return prim_field_data[field.getOffset ()]; + } - public short get (String name, short defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Short.TYPE); + public short get (String name, short defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Short.TYPE); - if (field == null) - return defvalue; + if (field == null) + return defvalue; - int off = field.getOffset (); + int off = field.getOffset (); - return (short)(((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } + return (short)(((prim_field_data[off++] & 0xFF) << 8) + | (prim_field_data[off] & 0xFF)); + } - public int get (String name, int defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Integer.TYPE); + public int get (String name, int defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Integer.TYPE); - if (field == null) - return defvalue; + if (field == null) + return defvalue; - int off = field.getOffset (); + int off = field.getOffset (); - return ((prim_field_data[off++] & 0xFF) << 24) - | ((prim_field_data[off++] & 0xFF) << 16) - | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF); - } + return ((prim_field_data[off++] & 0xFF) << 24) + | ((prim_field_data[off++] & 0xFF) << 16) + | ((prim_field_data[off++] & 0xFF) << 8) + | (prim_field_data[off] & 0xFF); + } - public long get (String name, long defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Long.TYPE); + public long get (String name, long defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Long.TYPE); + + if (field == null) + return defvalue; - if (field == null) - return defvalue; + int off = field.getOffset (); - int off = field.getOffset (); + return (long)(((prim_field_data[off++] & 0xFF) << 56) + | ((prim_field_data[off++] & 0xFF) << 48) + | ((prim_field_data[off++] & 0xFF) << 40) + | ((prim_field_data[off++] & 0xFF) << 32) + | ((prim_field_data[off++] & 0xFF) << 24) + | ((prim_field_data[off++] & 0xFF) << 16) + | ((prim_field_data[off++] & 0xFF) << 8) + | (prim_field_data[off] & 0xFF)); + } + + public float get (String name, float defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Float.TYPE); + + if (field == null) + return defvalue; + + int off = field.getOffset (); + + return Float.intBitsToFloat (((prim_field_data[off++] & 0xFF) << 24) + | ((prim_field_data[off++] & 0xFF) << 16) + | ((prim_field_data[off++] & 0xFF) << 8) + | (prim_field_data[off] & 0xFF)); + } + + public double get (String name, double defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = getField (name, Double.TYPE); + + if (field == null) + return defvalue; - return (long)(((prim_field_data[off++] & 0xFF) << 56) + int off = field.getOffset (); + + return Double.longBitsToDouble + ( (long) (((prim_field_data[off++] & 0xFF) << 56) | ((prim_field_data[off++] & 0xFF) << 48) | ((prim_field_data[off++] & 0xFF) << 40) | ((prim_field_data[off++] & 0xFF) << 32) | ((prim_field_data[off++] & 0xFF) << 24) | ((prim_field_data[off++] & 0xFF) << 16) | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } - - public float get (String name, float defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Float.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset (); - - return Float.intBitsToFloat (((prim_field_data[off++] & 0xFF) << 24) - | ((prim_field_data[off++] & 0xFF) << 16) - | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } - - public double get (String name, double defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField (name, Double.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset (); - - return Double.longBitsToDouble ( - (long)(((prim_field_data[off++] & 0xFF) << 56) - | ((prim_field_data[off++] & 0xFF) << 48) - | ((prim_field_data[off++] & 0xFF) << 40) - | ((prim_field_data[off++] & 0xFF) << 32) - | ((prim_field_data[off++] & 0xFF) << 24) - | ((prim_field_data[off++] & 0xFF) << 16) - | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF))); - } + | (prim_field_data[off] & 0xFF))); + } - public Object get (String name, Object defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = - getField (name, defvalue == null ? null : defvalue.getClass ()); + public Object get (String name, Object defvalue) + throws IOException, IllegalArgumentException + { + ObjectStreamField field = + getField (name, defvalue == null ? null : defvalue.getClass ()); - if (field == null) - return defvalue; + if (field == null) + return defvalue; - return objs[field.getOffset ()]; - } + return objs[field.getOffset ()]; + } - private ObjectStreamField getField (String name, Class type) - throws IllegalArgumentException - { - ObjectStreamField field = clazz.getField (name); + private ObjectStreamField getField (String name, Class type) + throws IllegalArgumentException + { + ObjectStreamField field = clazz.getField (name); - if (field == null) - return null; + if (field == null) + return null; - Class field_type = field.getType (); + Class field_type = field.getType (); - if (type == field_type || - (type == null && ! field_type.isPrimitive ())) - return field; + if (type == field_type || + (type == null && ! field_type.isPrimitive ())) + return field; - throw new IllegalArgumentException ("Field requested is of type " - + field_type.getName () - + ", but requested type was " - + (type == null ? - "Object" : type.getName ())); - } - }; + throw new IllegalArgumentException ("Field requested is of type " + + field_type.getName () + + ", but requested type was " + + (type == null ? + "Object" : type.getName ())); + } + }; } @@ -1077,15 +1069,7 @@ public class ObjectInputStream extends InputStream private int assignNewHandle (Object obj) { this.objectLookupTable.put (new Integer (this.nextOID), - new ObjectIdentityWrapper (obj)); - -// try -// { -// DEBUG ("Assigning handle " + this.nextOID); -// DEBUGln (" to " + obj); -// } -// catch (Throwable t) {} - + new ObjectIdentityWrapper (obj)); return this.nextOID++; } @@ -1097,22 +1081,22 @@ public class ObjectInputStream extends InputStream { Method m = null; try - { - Class classArgs[] = {}; - m = obj.getClass ().getDeclaredMethod ("readResolve", classArgs); - // m can't be null by definition since an exception would - // have been thrown so a check for null is not needed. - obj = m.invoke (obj, new Object[] {}); - } + { + Class classArgs[] = {}; + m = obj.getClass ().getDeclaredMethod ("readResolve", classArgs); + // m can't be null by definition since an exception would + // have been thrown so a check for null is not needed. + obj = m.invoke (obj, new Object[] {}); + } catch (NoSuchMethodException ignore) - { - } + { + } catch (IllegalAccessException ignore) - { - } + { + } catch (InvocationTargetException ignore) - { - } + { + } } if (this.resolveEnabled) @@ -1134,7 +1118,6 @@ public class ObjectInputStream extends InputStream private void readNextBlock () throws IOException { -// DEBUGln ("In readNextBlock "); readNextBlock (this.realInputStream.readByte ()); } @@ -1142,21 +1125,21 @@ public class ObjectInputStream extends InputStream private void readNextBlock (byte marker) throws IOException { if (marker == TC_BLOCKDATA) - { - dumpElement ("BLOCK DATA SIZE="); - this.blockDataBytes = this.realInputStream.readUnsignedByte (); - dumpElementln (Integer.toString(this.blockDataBytes)); - } + { + dumpElement ("BLOCK DATA SIZE="); + this.blockDataBytes = this.realInputStream.readUnsignedByte (); + dumpElementln (Integer.toString(this.blockDataBytes)); + } else if (marker == TC_BLOCKDATALONG) - { - dumpElement ("BLOCK DATA LONG SIZE="); - this.blockDataBytes = this.realInputStream.readInt (); - dumpElementln (Integer.toString(this.blockDataBytes)); - } + { + dumpElement ("BLOCK DATA LONG SIZE="); + this.blockDataBytes = this.realInputStream.readInt (); + dumpElementln (Integer.toString(this.blockDataBytes)); + } else - { - throw new EOFException ("Attempt to read primitive data, but no data block is active."); - } + { + throw new EOFException ("Attempt to read primitive data, but no data block is active."); + } if (this.blockData.length < this.blockDataBytes) this.blockData = new byte[this.blockDataBytes]; @@ -1170,70 +1153,70 @@ public class ObjectInputStream extends InputStream throws ClassNotFoundException, IOException { if (clazz.isPrimitive ()) - { - if (clazz == Boolean.TYPE) - { - boolean[] cast_array = (boolean[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readBoolean (); - return; - } - if (clazz == Byte.TYPE) { - byte[] cast_array = (byte[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readByte (); - return; - } - if (clazz == Character.TYPE) - { - char[] cast_array = (char[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readChar (); - return; - } - if (clazz == Double.TYPE) - { - double[] cast_array = (double[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readDouble (); - return; - } - if (clazz == Float.TYPE) - { - float[] cast_array = (float[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readFloat (); - return; - } - if (clazz == Integer.TYPE) - { - int[] cast_array = (int[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readInt (); - return; - } - if (clazz == Long.TYPE) - { - long[] cast_array = (long[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readLong (); - return; + if (clazz == Boolean.TYPE) + { + boolean[] cast_array = (boolean[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readBoolean (); + return; + } + if (clazz == Byte.TYPE) + { + byte[] cast_array = (byte[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readByte (); + return; + } + if (clazz == Character.TYPE) + { + char[] cast_array = (char[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readChar (); + return; + } + if (clazz == Double.TYPE) + { + double[] cast_array = (double[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readDouble (); + return; + } + if (clazz == Float.TYPE) + { + float[] cast_array = (float[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readFloat (); + return; + } + if (clazz == Integer.TYPE) + { + int[] cast_array = (int[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readInt (); + return; + } + if (clazz == Long.TYPE) + { + long[] cast_array = (long[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readLong (); + return; + } + if (clazz == Short.TYPE) + { + short[] cast_array = (short[])array; + for (int i=0; i < cast_array.length; i++) + cast_array[i] = this.realInputStream.readShort (); + return; + } } - if (clazz == Short.TYPE) + else { - short[] cast_array = (short[])array; + Object[] cast_array = (Object[])array; for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readShort (); - return; - } - } - else - { - Object[] cast_array = (Object[])array; - for (int i=0; i < cast_array.length; i++) cast_array[i] = readObject (); - } + } } @@ -1242,16 +1225,14 @@ public class ObjectInputStream extends InputStream ObjectStreamClass stream_osc) throws ClassNotFoundException, IOException { -// DEBUGln ("In readFields"); if (call_read_method) - { -// DEBUGln (" call_read_method is true"); - fieldsAlreadyRead = false; - boolean oldmode = setBlockDataMode (true); - callReadMethod (obj, stream_osc.forClass ()); - setBlockDataMode (oldmode); - return; - } + { + fieldsAlreadyRead = false; + boolean oldmode = setBlockDataMode (true); + callReadMethod (obj, stream_osc.forClass ()); + setBlockDataMode (oldmode); + return; + } ObjectStreamField[] real_fields = ObjectStreamClass.lookup (stream_osc.forClass ()).fields; @@ -1266,144 +1247,142 @@ public class ObjectInputStream extends InputStream while (stream_idx < stream_fields.length && real_idx < real_fields.length) - { - default_initialize = false; - set_value = true; - - if (stream_idx == stream_fields.length) - default_initialize = true; - else - { - stream_field = stream_fields[stream_idx]; - type = stream_field.getType (); - } - - if (real_idx == real_fields.length) - set_value = false; - else { - real_field = real_fields[real_idx]; - type = real_field.getType (); - field_name = real_field.getName (); - } + default_initialize = false; + set_value = true; - if (set_value && !default_initialize) - { - int comp_val = - real_field.compareTo (stream_field); - - if (comp_val < 0) - { + if (stream_idx == stream_fields.length) default_initialize = true; - real_idx++; - } - else if (comp_val > 0) - { + else + { + stream_field = stream_fields[stream_idx]; + type = stream_field.getType (); + } + + if (real_idx == real_fields.length) set_value = false; - stream_idx++; - } else - { - real_idx++; - stream_idx++; - } - } + { + real_field = real_fields[real_idx]; + type = real_field.getType (); + field_name = real_field.getName (); + } - try - { - if (type == Boolean.TYPE) - { - boolean value = - default_initialize ? false : this.realInputStream.readBoolean (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setBooleanField (obj, field_name, value); - } - else if (type == Byte.TYPE) - { - byte value = - default_initialize ? 0 : this.realInputStream.readByte (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setByteField (obj, field_name, value); - } - else if (type == Character.TYPE) - { - char value = - default_initialize ? (char)0 : this.realInputStream.readChar (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setCharField (obj, field_name, value); - } - else if (type == Double.TYPE) - { - double value = - default_initialize ? 0 : this.realInputStream.readDouble (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setDoubleField (obj, field_name, value); - } - else if (type == Float.TYPE) - { - float value = - default_initialize ? 0 : this.realInputStream.readFloat (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setFloatField (obj, field_name, value); - } - else if (type == Integer.TYPE) - { - int value = - default_initialize ? 0 : this.realInputStream.readInt (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setIntField (obj, field_name, value); - } - else if (type == Long.TYPE) - { - long value = - default_initialize ? 0 : this.realInputStream.readLong (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setLongField (obj, field_name, value); - } - else if (type == Short.TYPE) - { - short value = - default_initialize ? (short)0 : this.realInputStream.readShort (); - if (!default_initialize && set_value) - dumpElementln (" " + field_name + ": " + value); - if (set_value) - setShortField (obj, field_name, value); - } - else - { - Object value = - default_initialize ? null : readObject (); - if (set_value) - setObjectField (obj, field_name, - real_field.getTypeString (), value); - } - } - catch (NoSuchFieldError e) - { - dumpElementln("XXXX " + field_name + " does not exist."); - } - } - } + if (set_value && !default_initialize) + { + int comp_val = + real_field.compareTo (stream_field); + + if (comp_val < 0) + { + default_initialize = true; + real_idx++; + } + else if (comp_val > 0) + { + set_value = false; + stream_idx++; + } + else + { + real_idx++; + stream_idx++; + } + } + try + { + if (type == Boolean.TYPE) + { + boolean value = + default_initialize ? false : this.realInputStream.readBoolean (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setBooleanField (obj, field_name, value); + } + else if (type == Byte.TYPE) + { + byte value = + default_initialize ? 0 : this.realInputStream.readByte (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setByteField (obj, field_name, value); + } + else if (type == Character.TYPE) + { + char value = + default_initialize ? (char)0 : this.realInputStream.readChar (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setCharField (obj, field_name, value); + } + else if (type == Double.TYPE) + { + double value = + default_initialize ? 0 : this.realInputStream.readDouble (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setDoubleField (obj, field_name, value); + } + else if (type == Float.TYPE) + { + float value = + default_initialize ? 0 : this.realInputStream.readFloat (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setFloatField (obj, field_name, value); + } + else if (type == Integer.TYPE) + { + int value = + default_initialize ? 0 : this.realInputStream.readInt (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setIntField (obj, field_name, value); + } + else if (type == Long.TYPE) + { + long value = + default_initialize ? 0 : this.realInputStream.readLong (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setLongField (obj, field_name, value); + } + else if (type == Short.TYPE) + { + short value = + default_initialize ? (short)0 : this.realInputStream.readShort (); + if (!default_initialize && set_value) + dumpElementln (" " + field_name + ": " + value); + if (set_value) + setShortField (obj, field_name, value); + } + else + { + Object value = + default_initialize ? null : readObject (); + if (set_value) + setObjectField (obj, field_name, + real_field.getTypeString (), value); + } + } + catch (NoSuchFieldError e) + { + dumpElementln("XXXX " + field_name + " does not exist."); + } + } + } // Toggles writing primitive data to block-data buffer. private boolean setBlockDataMode (boolean on) { -// DEBUGln ("Setting block data mode to " + on); boolean oldmode = this.readDataFromBlock; this.readDataFromBlock = on; @@ -1420,15 +1399,15 @@ public class ObjectInputStream extends InputStream private Object newObject (Class real_class, Class constructor_class) { try - { - Object obj = allocateObject (real_class); - callConstructor (constructor_class, obj); - return obj; - } + { + Object obj = allocateObject (real_class); + callConstructor (constructor_class, obj); + return obj; + } catch (InstantiationException e) - { - return null; - } + { + return null; + } } @@ -1441,14 +1420,14 @@ public class ObjectInputStream extends InputStream Arrays.sort (validators); try - { - for (int i=0; i < validators.length; i++) - ((ObjectInputValidation)validators[i]).validateObject (); - } + { + for (int i=0; i < validators.length; i++) + ((ObjectInputValidation)validators[i]).validateObject (); + } finally - { - this.validators.removeAllElements (); - } + { + this.validators.removeAllElements (); + } } @@ -1465,13 +1444,13 @@ public class ObjectInputStream extends InputStream { return klass.getDeclaredField(name); } - + private static Method getMethod (Class klass, String name, Class args[]) throws java.lang.NoSuchMethodException { return klass.getDeclaredMethod(name, args); } - + private void callReadMethod (Object obj, Class klass) throws IOException { try @@ -1523,7 +1502,7 @@ public class ObjectInputStream extends InputStream } private void setByteField (Object obj, String field_name, - byte val) + byte val) { try { @@ -1583,7 +1562,7 @@ public class ObjectInputStream extends InputStream } private void setIntField (Object obj, String field_name, - int val) + int val) { try { @@ -1599,7 +1578,7 @@ public class ObjectInputStream extends InputStream private void setLongField (Object obj, String field_name, - long val) + long val) { try { @@ -1666,7 +1645,7 @@ public class ObjectInputStream extends InputStream private boolean fieldsAlreadyRead; private Vector validators; - private static boolean dump; + private static boolean dump; private void dumpElement (String msg) { @@ -1681,12 +1660,12 @@ public class ObjectInputStream extends InputStream } static - { - if (Configuration.INIT_LOAD_LIBRARY) - { - System.loadLibrary ("javaio"); - } - } + { + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary ("javaio"); + } + } } |