1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/* 2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more 3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements. See the NOTICE file distributed with 4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership. 5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with 7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License. You may obtain a copy of the License at 8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software 12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and 15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License. 16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.io; 19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ByteArrayInputStream; 21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ByteArrayOutputStream; 22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.DataOutputStream; 23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.IOException; 24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.InvalidClassException; 25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.NotActiveException; 26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ObjectInputStream; 27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ObjectOutputStream; 28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ObjectStreamClass; 29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ObjectStreamConstants; 30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ObjectStreamField; 31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.OptionalDataException; 32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Serializable; 33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.ArrayList; 34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Arrays; 35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Date; 36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Locale; 37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath@SuppressWarnings({ "serial", "unused" }) 40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class SerializationStressTest2 extends SerializationStressTest { 41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class ReadWriteObjectAndPrimitiveData implements 43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath transient long milliseconds; 45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean calledWriteObject = false; 47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean calledReadObject = false; 49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public ReadWriteObjectAndPrimitiveData() { 51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream in) 55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException, ClassNotFoundException { 56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath in.defaultReadObject(); 57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // This *has* to come after the call to defaultReadObject or the 58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // value from the stream will override 59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath calledReadObject = true; 60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath milliseconds = in.readLong(); 61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream out) 64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException { 65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath calledWriteObject = true; 66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out.defaultWriteObject(); 67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out.writeLong(milliseconds); 68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // What happens if a class defines serialPersistentFields that do not match 72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // real fields but does not override read/writeObject 73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class WithUnmatchingSerialPersistentFields implements 74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField( 76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "value", String.class) }; 77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int anInstanceVar = 5; 79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public WithUnmatchingSerialPersistentFields() { 81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // What happens if a class defines serialPersistentFields which match actual 86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // fields 87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class WithMatchingSerialPersistentFields implements 88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField( 90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "anInstanceVar", String.class) }; 91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String anInstanceVar = FOO + FOO; 93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public WithMatchingSerialPersistentFields() { 95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Tests the oficial behavior for serialPersistentFields 100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SerialPersistentFields implements java.io.Serializable { 101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final String SIMULATED_FIELD_NAME = "text"; 102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField( 104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SIMULATED_FIELD_NAME, String.class) }; 105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int anInstanceVar = 5; 107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SerialPersistentFields() { 109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream in) 113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException, ClassNotFoundException { 114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectInputStream.GetField fields = in.readFields(); 115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath anInstanceVar = Integer.parseInt((String) fields.get( 116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SIMULATED_FIELD_NAME, "-5")); 117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream out) 120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException, ClassNotFoundException { 121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectOutputStream.PutField fields = out.putFields(); 122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fields.put(SIMULATED_FIELD_NAME, Integer.toString(anInstanceVar)); 123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out.writeFields(); 124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Tests the behavior for serialPersistentFields when no fields are actually 128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // set 129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class WriteFieldsWithoutFetchingPutFields implements 130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final String SIMULATED_FIELD_NAME = "text"; 132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField( 134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SIMULATED_FIELD_NAME, String.class) }; 135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int anInstanceVar = 5; 137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public WriteFieldsWithoutFetchingPutFields() { 139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream in) 143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException, ClassNotFoundException { 144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectInputStream.GetField fields = in.readFields(); 145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream out) 148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException, ClassNotFoundException { 149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out.writeFields(); 150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Tests what happens if one asks for PutField/getField when the class does 154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // not declare one 155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SerialPersistentFieldsWithoutField implements 156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int anInstanceVar = 5; 158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SerialPersistentFieldsWithoutField() { 160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream in) 164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException, ClassNotFoundException { 165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectInputStream.GetField fields = in.readFields(); 166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream out) 169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException, ClassNotFoundException { 170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectOutputStream.PutField fields = out.putFields(); 171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out.writeFields(); 172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // writeObject writes extra primitive types and objects which readObject 178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // does not consume. Have to make sure we can load object properly AND 179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // object after it (to show the extra byte[] is consumed) 180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class OptionalDataNotRead implements java.io.Serializable { 181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private int field1, field2; 182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public OptionalDataNotRead() { 184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final ObjectStreamField[] serialPersistentFields = { 187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new ObjectStreamField("field1", Integer.TYPE), 188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new ObjectStreamField("field2", Integer.TYPE), 189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new ObjectStreamField("monthLength", byte[].class), }; 190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(ObjectOutputStream stream) throws IOException { 192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectOutputStream.PutField fields = stream.putFields(); 193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fields.put("field1", 1); 194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fields.put("field2", 2); 195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fields.put("monthLength", new byte[] { 7, 8, 9 }); 196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath stream.writeFields(); 197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath stream.writeInt(4); 198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] values = new byte[4]; 199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath values[0] = (byte) 16; 200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath values[1] = (byte) 17; 201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath values[2] = (byte) 18; 202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath values[3] = (byte) 19; 203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath stream.writeObject(values); 204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(ObjectInputStream stream) throws IOException, 207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ClassNotFoundException { 208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectInputStream.GetField fields = stream.readFields(); 209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath field1 = fields.get("field1", 0); 210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath field2 = fields.get("field1", 0); 211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class NestedPutField implements java.io.Serializable { 216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public OptionalDataNotRead field1; 217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public NestedPutField() { 219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField( 222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "field1", OptionalDataNotRead.class), }; 223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(ObjectOutputStream stream) throws IOException { 225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectOutputStream.PutField fields = stream.putFields(); 226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fields.put("field1", new OptionalDataNotRead()); 227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath stream.writeFields(); 228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(ObjectInputStream stream) throws IOException, 231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ClassNotFoundException { 232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectInputStream.GetField fields = stream.readFields(); 233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath field1 = (OptionalDataNotRead) fields.get("field1", null); 234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // This one tests stream-based replacement when dumping 240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class StreamBasedReplacementWhenDumping extends 241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.ObjectOutputStream { 242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean calledArrayReplacement = false; 243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean calledStringReplacement = false; 245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean calledClassReplacement = false; 247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean calledObjectStreamClassReplacement = false; 249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public StreamBasedReplacementWhenDumping(java.io.OutputStream output) 251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws java.io.IOException { 252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(output); 253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath enableReplaceObject(true); 254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected Object replaceObject(Object obj) throws IOException { 257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Class objClass = obj.getClass(); 258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (objClass == String.class) 259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath calledStringReplacement = true; 260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (objClass == Class.class) 262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath calledClassReplacement = true; 263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (objClass == ObjectStreamClass.class) 265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath calledObjectStreamClassReplacement = true; 266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (objClass.isArray()) 268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath calledArrayReplacement = true; 269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return obj; 271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class ArrayOfSerializable implements Serializable { 277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private Serializable[] testField = null; 278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public ArrayOfSerializable() { 280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath testField = new Serializable[2]; 281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath testField[0] = "Hi"; 282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath testField[1] = "there!"; 283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class ClassSubClassTest0 extends java.lang.Object implements 289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String stringVar; 291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public ClassSubClassTest0(String init) { 293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath stringVar = init; 294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class ClassSubClassTest1 extends ClassSubClassTest0 { 298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String subStringVar; 299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public ClassSubClassTest1(String superString, String subString) { 301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(superString); 302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath subStringVar = subString; 303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof ClassSubClassTest1)) 309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ClassSubClassTest1 inst = (ClassSubClassTest1) obj; 312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.subStringVar.equals(this.subStringVar) 313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.stringVar.equals(this.stringVar); 314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class ConstructorTestA { 319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String instVar_classA; 320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public final static String ConstrA = "Init in Constructor Class A"; 322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public final static String ConstrB = "Init in Constructor Class B"; 324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public final static String ConstrC = "Init in Constructor Class C"; 326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public final static String ChangedC = "Changed before Serialize - Class C"; 328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public ConstructorTestA() { 330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instVar_classA = ConstrA; 331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class ConstructorTestB extends ConstructorTestA implements 335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String instVar_classB; 337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public ConstructorTestB() { 339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instVar_classA = ConstrB; 340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instVar_classB = ConstrB; 341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class ConstructorTestC extends ConstructorTestB { 345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String instVar_classC; 346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public ConstructorTestC() { 348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instVar_classA = ConstrC; 349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instVar_classB = ConstrC; 350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instVar_classC = ConstrC; 351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean verify(Object obj) { 354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof ConstructorTestC)) 357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ConstructorTestC inst = (ConstructorTestC) obj; 360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.instVar_classC.equals(this.instVar_classC) 361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.instVar_classB.equals(this.instVar_classB) 362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.instVar_classA.equals(ConstrA); 363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class HashCodeTest implements java.io.Serializable { 368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private boolean serializationUsesHashCode = false; 369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int hashCode() { 371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath serializationUsesHashCode = true; 372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return super.hashCode(); 373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class InitializerFieldsTest implements java.io.Serializable { 378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String toBeSerialized; 379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static java.lang.String toBeNotSerialized; 381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static java.lang.String toBeNotSerialized2; 383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath toBeSerialized = "NonStaticInitialValue"; 386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static { 389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath toBeNotSerialized = "StaticInitialValue"; 390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath toBeNotSerialized2 = new String(toBeNotSerialized); 391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * This method is not answering it the objs is equal. It is 396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * answering if the vars have the value that it have to have after 397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * dumping and loading 398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof InitializerFieldsTest)) 403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest inst = (InitializerFieldsTest) obj; 406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.toBeSerialized.equals(this.toBeSerialized) 407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && InitializerFieldsTest.toBeNotSerialized.equals(toBeNotSerialized2); 408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class InitializerFieldsTest2 implements java.io.Serializable { 412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String toBeSerialized; 413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static java.lang.String toBeNotSerialized; 415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static java.lang.String toBeNotSerialized2; 417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath toBeSerialized = "NonStaticInitialValue"; 420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String toBeSerialized3; 423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String toBeSerialized4; 425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static { 427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath toBeNotSerialized = "StaticInitialValue"; 428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath toBeNotSerialized2 = new String(toBeNotSerialized); 429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String toBeSerialized5; 432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * This method is not answering it the objs is equal. It is 436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * answering if the vars have the value that it have to have after 437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * dumping and loading 438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof InitializerFieldsTest2)) 443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2 inst = (InitializerFieldsTest2) obj; 446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.toBeSerialized.equals(this.toBeSerialized) 447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.toBeSerialized3.equals(this.toBeSerialized3) 448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.toBeSerialized4.equals(this.toBeSerialized4) 449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.toBeSerialized5.equals(this.toBeSerialized5) 450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && InitializerFieldsTest2.toBeNotSerialized.equals(toBeNotSerialized2); 451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class InitializerFieldsTest3 extends InitializerFieldsTest2 455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath implements java.io.Serializable { 456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String sub_toBeSerialized; 457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static java.lang.String sub_toBeNotSerialized; 459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static java.lang.String sub_toBeNotSerialized2; 461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath sub_toBeSerialized = "NonStaticInitialValue"; 464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String sub_toBeSerialized3; 467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String sub_toBeSerialized4; 469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static { 471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath sub_toBeNotSerialized = "StaticInitialValue"; 472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath sub_toBeNotSerialized2 = new String(sub_toBeNotSerialized); 473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public java.lang.String sub_toBeSerialized5; 476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * This method is not answering it the objs is equal. It is 480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * answering if the vars have the value that it have to have after 481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * dumping and loading 482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!super.equals(obj)) 485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof InitializerFieldsTest3)) 487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest3 inst = (InitializerFieldsTest3) obj; 490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.sub_toBeSerialized.equals(this.sub_toBeSerialized) 491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.sub_toBeSerialized3 492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(this.sub_toBeSerialized3) 493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.sub_toBeSerialized4 494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(this.sub_toBeSerialized4) 495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && inst.sub_toBeSerialized5 496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(this.sub_toBeSerialized5) 497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && InitializerFieldsTest3.sub_toBeNotSerialized 498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(sub_toBeNotSerialized2); 499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class DeepNesting implements java.io.Serializable { 504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public float id; 505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNesting next; 507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean dump; 509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean load; 511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNesting(float id) { 513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath this.id = id; 514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath next = null; 515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dump = false; 516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath load = false; 517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNesting(int howMany) { 520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath DeepNesting prev = new DeepNesting(0.0F); 521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath next(prev); 522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 1; i < howMany; i++) { 523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath prev = prev.next(new DeepNesting(i * 1.0F)); 524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof DeepNesting)) 531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath DeepNesting inst = (DeepNesting) obj; 534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (inst.dump != this.dump || inst.load != this.load) 535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (inst.next == null || this.next == null) 538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.next == this.next; // both null 539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return this.next.equals(inst.next); 540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNesting next(DeepNesting ivt) { 543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath next = ivt; 544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return ivt; 545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class DeepNestingWithWriteObject implements 550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public float id; 552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNestingWithWriteObject next; 554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean dump; 556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean load; 558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNestingWithWriteObject(float id) { 560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath this.id = id; 561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath next = null; 562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dump = false; 563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath load = false; 564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNestingWithWriteObject(int howMany) { 567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath DeepNestingWithWriteObject prev = new DeepNestingWithWriteObject( 568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 0.0F); 569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath next(prev); 570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 1; i < howMany; i++) { 571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath prev = prev.next(new DeepNestingWithWriteObject(i * 1.0F)); 572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof DeepNestingWithWriteObject)) 579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath DeepNestingWithWriteObject inst = (DeepNestingWithWriteObject) obj; 582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (inst.dump != this.dump || inst.load != this.load) 583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (inst.next == null || this.next == null) 586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.next == this.next; // both null; 587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return this.next.equals(inst.next); 588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public DeepNestingWithWriteObject next(DeepNestingWithWriteObject ivt) { 591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath next = ivt; 592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return ivt; 593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream s) 596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.defaultWriteObject(); 598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream s) 601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException, ClassNotFoundException { 602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.defaultReadObject(); 603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static class NonPublicClassTest extends java.lang.Object implements 608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int field = 1; 610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public NonPublicClassTest() { 612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath field = 10; 613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object o) { 616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (o instanceof NonPublicClassTest) 617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return field == ((NonPublicClassTest) o).field; 618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void x10() { 622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath field *= 10; 623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SameInstVarNameSuperClass { 628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private int foo; 629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SameInstVarNameSuperClass() { 631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SameInstVarNameSuperClass(int fooValue) { 635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath foo = fooValue; 636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String toString() { 639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return "foo = " + foo; 640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SameInstVarNameSubClass extends 644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SameInstVarNameSuperClass implements java.io.Serializable { 645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected int foo; 646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SameInstVarNameSubClass() { 648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(); 649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SameInstVarNameSubClass(int fooValue) { 652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(-fooValue); 653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath foo = fooValue; 654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SInterfaceTest implements java.io.Serializable { 659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static int staticVar = 5; 660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public transient int[] transVar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; 662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int instanceVar = 7; 664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(obj instanceof SInterfaceTest)) 669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SInterfaceTest inst = (SInterfaceTest) obj; 672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (this.instanceVar != inst.instanceVar) 673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (inst.transVar == null || this.transVar == null) 675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return inst.transVar == this.transVar; // both null 676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < transVar.length; i++) 677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (inst.transVar[i] != this.transVar[i]) 678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return true; 680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream s) 683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException, ClassNotFoundException { 684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object arr; 685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.defaultReadObject(); 686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath arr = s.readObject(); 687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath transVar = (int[]) arr; 688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream s) 691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.defaultWriteObject(); 693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.writeObject(transVar); 694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void x10() { 697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < transVar.length; i++) 698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath transVar[i] = transVar[i] * 10; 699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instanceVar = instanceVar * 10; 700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SInterfaceTest2 extends SInterfaceTest { 705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream s) 706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException, ClassNotFoundException { 707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object arr; 708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath instanceVar = s.readInt(); 709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath arr = s.readObject(); 710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath transVar = (int[]) arr; 711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream s) 714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.writeInt(instanceVar); 716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.writeObject(transVar); 717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SuperclassTest extends java.lang.Object implements 722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.Serializable { 723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int superfield = 1; 724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SuperclassTest() { 726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath superfield = 10; 727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object o) { 730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (o.getClass() == this.getClass()) 731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return superfield == ((SuperclassTest) o).superfield; 732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream s) 736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException, ClassNotFoundException { 737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath superfield = s.readInt(); 738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream s) 741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.writeInt(superfield); 743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void x10() { 746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath superfield *= 10; 747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SuperclassTest2 extends SuperclassTest { 752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int subfield = 5; 753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SuperclassTest2() { 755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath subfield = 50; 756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object o) { 759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (o instanceof SuperclassTest2) 760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (subfield == ((SuperclassTest2) o).subfield) 761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return super.equals(o); 762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void readObject(java.io.ObjectInputStream s) 766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException, ClassNotFoundException { 767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath subfield = s.readInt(); 768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void writeObject(java.io.ObjectOutputStream s) 771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.writeInt(subfield); 773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void x10() { 776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath subfield *= 10; 777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super.x10(); 778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // ----------------------------------------------------------------------------------- 782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private static class SyntheticFieldTest implements java.io.Serializable { 783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean equals(Object obj) { 784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * This method is not answering it the objs is equal. It is 786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * answering if the vars have the value that it have to have after 787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * dumping and loading 788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj == null) 790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return false; 791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return obj instanceof SyntheticFieldTest; 792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int hashCode() { 795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Insert code to generate a hash code for the receiver here. 796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // This implementation forwards the message to super. You may 797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // replace or supplement this. 798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // NOTE: if two objects are equal (equals Object) returns true) they 799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // must have the same hash code 800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Class[] c = { String.class }; // *** synthetic field 801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return super.hashCode(); 802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public SerializationStressTest2(String name) { 806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super(name); 807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_41_writeObject() { 810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.IOException ex = new java.io.WriteAbortedException(FOO, 818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath null); 819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = ex; 820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to be able to save/load an exception 824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, true); 825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_42_writeObject() { 840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath WithUnmatchingSerialPersistentFields spf = new WithUnmatchingSerialPersistentFields(); 848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = spf; 849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean causedException = false; 852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (InvalidClassException ce) { 855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath causedException = true; 856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("serialPersistentFields do not match real fields", 858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath causedException); 859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_43_writeObject() { 874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath WithMatchingSerialPersistentFields spf = new WithMatchingSerialPersistentFields(); 882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath spf.anInstanceVar = FOO; 883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = spf; 884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue( 888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "serialPersistentFields do not work properly in this implementation", 889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FOO 890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(((WithMatchingSerialPersistentFields) objLoaded).anInstanceVar)); 891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_44_writeObject() { 906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SerialPersistentFields spf = new SerialPersistentFields(); 914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int CONST = -500; 915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath spf.anInstanceVar = CONST; 916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = spf; 917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue( 921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "serialPersistentFields do not work properly in this implementation", 922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((SerialPersistentFields) objLoaded).anInstanceVar == CONST); 923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_45_writeObject() { 938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath WriteFieldsWithoutFetchingPutFields spf = new WriteFieldsWithoutFetchingPutFields(); 946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = spf; 947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean causedException = false; 950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NotActiveException ce) { 953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath causedException = true; 954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("WriteFieldsWithoutFetchingPutFields", causedException); 956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_46_writeObject() { 971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = SerialPersistentFields.class; // Test for 1FA7TA6 979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to be able to save/load an exception 983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, true); 984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_47_writeObject() { 999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = ObjectStreamClass.lookup(SerialPersistentFields.class); // Test 1007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // for 1008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // 1FA7TA6 1009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to be able to save/load an exception 1013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, true); 1014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_48_writeObject() { 1029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SerialPersistentFieldsWithoutField spf = new SerialPersistentFieldsWithoutField(); 1037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int CONST = -500; 1038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath spf.anInstanceVar = CONST; 1039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = spf; 1040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue( 1044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "serialPersistentFields do not work properly in this implementation", 1045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((SerialPersistentFieldsWithoutField) objLoaded).anInstanceVar != CONST); 1046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_51_writeObject() { 1061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ReadWriteObjectAndPrimitiveData readWrite = new ReadWriteObjectAndPrimitiveData(); 1070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = readWrite; 1071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // has to have called the writeObject on the instance to dump 1075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, readWrite.calledWriteObject); 1076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // has to have called the readObject on the instance loaded 1077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue( 1078cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath MSG_TEST_FAILED + objToSave, 1079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((ReadWriteObjectAndPrimitiveData) objLoaded).calledReadObject); 1080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_52_writeObject() { 1095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ArrayList list = new ArrayList<String>(Arrays.asList(new String[] { "a", 1104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "list", "of", "strings" })); 1105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = list; 1106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, true); 1111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_53_writeObject() { 1126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = Locale.CHINESE; 1135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, true); 1140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_OptionalDataNotRead() { 1155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath OptionalDataNotRead test = new OptionalDataNotRead(); 1163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Have to save an object after the one above, and when we read it, 1164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // it cannot be a byte[] 1165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Date now = new Date(); 1166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object[] twoObjects = new Object[2]; 1167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath twoObjects[0] = test; 1168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath twoObjects[1] = now; 1169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = twoObjects; 1170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object[] twoLoadedObjects = (Object[]) objLoaded; 1175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, twoLoadedObjects[0] 1176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getClass() == OptionalDataNotRead.class); 1177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, twoLoadedObjects[1] 1178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getClass() == Date.class); 1179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_55_writeObject() { 1194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object[] threeObjects = new Object[3]; 1202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath threeObjects[0] = new Integer(2); 1203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath threeObjects[1] = Date.class; 1204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath threeObjects[2] = threeObjects[0]; // has to be the same 1205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = threeObjects; 1206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object[] threeLoadedObjects = (Object[]) objLoaded; 1211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, threeLoadedObjects[0] 1212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getClass() == Integer.class); 1213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, 1214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath threeLoadedObjects[1] == Date.class); 1215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, 1216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath threeLoadedObjects[0] == threeLoadedObjects[2]); 1217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_56_writeObject() { 1232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for 1FD24BY 1240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath NestedPutField test = new NestedPutField(); 1241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(MSG_TEST_FAILED + objToSave, 1247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((NestedPutField) objLoaded).field1); 1248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_57_writeObject() { 1263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ByteArrayOutputStream out; 1271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamBasedReplacementWhenDumping streamBasedReplacementWhenDumping; 1272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out = new ByteArrayOutputStream(); 1274c5217ff900cb95d3af788637704414be09b6527eNarayan Kamath streamBasedReplacementWhenDumping = new StreamBasedReplacementWhenDumping(out); 1275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = FOO.getClass(); 1276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping.writeObject(objToSave); 1279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have run the replacement method 1280c5217ff900cb95d3af788637704414be09b6527eNarayan Kamath assertTrue(streamBasedReplacementWhenDumping.calledClassReplacement); 1281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Exception serializing " + objToSave + "\t->" 1283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.toString()); 1284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error " + err + " when obj = " + objToSave); 1286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_58_writeObject() { 1291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ByteArrayOutputStream out; 1299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamBasedReplacementWhenDumping streamBasedReplacementWhenDumping; 1300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out = new ByteArrayOutputStream(); 1302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping = new StreamBasedReplacementWhenDumping( 1303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out); 1304c5217ff900cb95d3af788637704414be09b6527eNarayan Kamath 1305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = ObjectStreamClass.lookup(FOO.getClass()); 1306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping.writeObject(objToSave); 1309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have run the replacement method 1310c5217ff900cb95d3af788637704414be09b6527eNarayan Kamath assertTrue(streamBasedReplacementWhenDumping.calledObjectStreamClassReplacement); 1311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Exception serializing " + objToSave + "\t->" 1313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.toString()); 1314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error " + err + " when obj = " + objToSave); 1316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_59_writeObject() { 1321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ByteArrayOutputStream out; 1329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamBasedReplacementWhenDumping streamBasedReplacementWhenDumping; 1330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out = new ByteArrayOutputStream(); 1332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping = new StreamBasedReplacementWhenDumping( 1333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out); 1334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ; 1335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = new int[3]; 1336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping.writeObject(objToSave); 1339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have run the replacement method 1340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("DId not execute replacement when it should: " 1341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + objToSave, 1342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping.calledArrayReplacement); 1343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Exception serializing " + objToSave + "\t->" 1346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.toString()); 1347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error " + err + " when obj = " + objToSave); 1349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_60_writeObject() { 1354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ByteArrayOutputStream out; 1362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamBasedReplacementWhenDumping streamBasedReplacementWhenDumping; 1363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out = new ByteArrayOutputStream(); 1365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping = new StreamBasedReplacementWhenDumping( 1366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath out); 1367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ; 1368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = FOO; 1369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping.writeObject(objToSave); 1372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have run the replacement method 1373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Did not execute replacement when it should: " 1374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + objToSave, 1375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath streamBasedReplacementWhenDumping.calledStringReplacement); 1376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Exception serializing " + objToSave + "\t->" 1379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.toString()); 1380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error " + err + " when obj = " + objToSave); 1382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_61_writeObject() { 1387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ArrayOfSerializable test = new ArrayOfSerializable(); 1395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, true); 1401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_62_writeObject() { 1416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ClassSubClassTest1 test = new ClassSubClassTest1( 1424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "SuperInitialString", "SubInitialString"); 1425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, test.equals(objLoaded)); 1431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_63_writeObject() { 1446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ConstructorTestC test = new ConstructorTestC(); 1454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, test.verify(objLoaded)); 1460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_64_writeObject() { 1475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath HashCodeTest test = new HashCodeTest(); 1483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, 1489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath !((HashCodeTest) objLoaded).serializationUsesHashCode); 1490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_65_writeObject() { 1505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest test = new InitializerFieldsTest(); 1513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized = "serializing"; 1514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest.toBeNotSerialized = "It should not have this value after loaded from a File"; 1515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest.toBeNotSerialized2 = "Good-This is the rigth value."; 1516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dump(objToSave); 1521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest.toBeNotSerialized = new String( 1522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest.toBeNotSerialized2); 1523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = reload(); 1524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, (test.equals(objLoaded))); 1527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_66_writeObject() { 1542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2 test = new InitializerFieldsTest2(); 1550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized = "serializing"; 1551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized3 = "serializing3"; 1552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized4 = "serializing4"; 1553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized5 = "serializing5"; 1554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized = "It should not have this value after loaded from a File"; 1555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized2 = "Good-This is the rigth value."; 1556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dump(objToSave); 1561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized = new String( 1562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized2); 1563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = reload(); 1564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, (test.equals(objLoaded))); 1567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_67_writeObject() { 1582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest3 test = new InitializerFieldsTest3(); 1590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized = "serializing"; 1591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized3 = "serializing3"; 1592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized4 = "serializing4"; 1593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.toBeSerialized5 = "serializing5"; 1594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized = "It should not have this value after loaded from a File"; 1595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized2 = "Good-This is the rigth value."; 1596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.sub_toBeSerialized = "serializingSub"; 1597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.sub_toBeSerialized3 = "serializing3sub"; 1598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.sub_toBeSerialized4 = "serializing4sub"; 1599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.sub_toBeSerialized5 = "serializing5sub"; 1600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest3.sub_toBeNotSerialized = "(Subclass) It should not have this value after loaded from a File"; 1601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest3.sub_toBeNotSerialized2 = "(Subclass) Good-This is the rigth value."; 1602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Before dumping the two static vars are differents. 1603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // After dumping the value of toBeNotSerialized2 is put in 1604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // toBeNotSerialized 1605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // After loading it must be the same. 1606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dump(objToSave); 1610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized = new String( 1611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest2.toBeNotSerialized2); 1612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest3.sub_toBeNotSerialized = new String( 1613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InitializerFieldsTest3.sub_toBeNotSerialized2); 1614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = reload(); 1615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, (test.equals(objLoaded))); 1618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_DeepNesting() { 1633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1640c5217ff900cb95d3af788637704414be09b6527eNarayan Kamath DeepNesting test = new DeepNesting(25); 1641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, (test.equals(objLoaded))); 1648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error " + err + " when obj = " + objToSave); 1658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_DeepNestingWithWriteObject() { 1663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1670c5217ff900cb95d3af788637704414be09b6527eNarayan Kamath DeepNestingWithWriteObject test = new DeepNestingWithWriteObject(10); 1671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, (test.equals(objLoaded))); 1678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error " + err + " when obj = " + objToSave); 1688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_69_writeObject() { 1693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath NonPublicClassTest test = new NonPublicClassTest(); 1701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test.x10(); 1702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, (test.equals(objLoaded))); 1709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_70_writeObject() { 1724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int[] test = new int[1]; 1732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int intValue = 0; 1733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath test[0] = intValue; 1734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(test, 1741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath (int[]) objLoaded)); 1742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_71_writeObject() { 1757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int i, j, maxJ = 3, maxI = 200; 1765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[][] obj = new byte[maxJ][maxI]; 1766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (j = 0; j < maxJ; j++) { 1767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (i = 0; i < maxI; i++) 1768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath obj[j][i] = (byte) (i - 100); 1769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = obj; 1771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[][] toCompare = (byte[][]) objLoaded; 1775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean ok = true; 1777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (j = 0; j < maxJ; j++) { 1779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (i = 0; i < maxI; i++) 1780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj[j][i] != toCompare[j][i]) { 1781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ok = false; 1782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath break; 1783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, ok); 1787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_72_writeObject() { 1802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int i, j, maxJ = 3, maxI = 200; 1810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int[][] obj = new int[maxJ][maxI]; 1811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (j = 0; j < maxJ; j++) { 1812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (i = 0; i < maxI; i++) 1813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath obj[j][i] = (i - 100); 1814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = obj; 1816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int[][] toCompare = (int[][]) objLoaded; 1820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean ok = true; 1822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (j = 0; j < maxJ; j++) { 1824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (i = 0; i < maxI; i++) 1825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (obj[j][i] != toCompare[j][i]) { 1826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ok = false; 1827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath break; 1828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, ok); 1832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_73_writeObject() { 1847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String org = "abcdefghijklmnopqrstuvxyz1234567890abcdefghijklmnopqrstuvxyz1234567890"; 1855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int i, j, maxJ = 3, maxI = 70; 1856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String[][] obj = new String[maxJ][maxI]; 1857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (j = 0; j < maxJ; j++) { 1858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (i = 0; i < maxI; i++) 1859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath obj[j][i] = org.substring(0, i); 1860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = obj; 1862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String[][] toCompare = (String[][]) objLoaded; 1866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean ok = true; 1868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (j = 0; j < maxJ; j++) { 1870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (i = 0; i < maxI; i++) 1871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!obj[j][i].equals(toCompare[j][i])) { 1872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ok = false; 1873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath break; 1874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, ok); 1878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_74_writeObject() { 1893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SameInstVarNameSubClass test = new SameInstVarNameSubClass(100); 1901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, 1907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((SameInstVarNameSubClass) objLoaded).foo == 100); 1908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_75_writeObject() { 1923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SInterfaceTest test = new SInterfaceTest(); 1931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, test.equals(objLoaded)); 1937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_76_writeObject() { 1952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SInterfaceTest2 test = new SInterfaceTest2(); 1960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, test.equals(objLoaded)); 1966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 1971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 1972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 1974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 1975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 1976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 1977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_77_writeObject() { 1981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 1982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 1983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 1985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 1986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SuperclassTest test = new SuperclassTest(); 1989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 1990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 1991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 1992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 1993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 1994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, test.equals(objLoaded)); 1995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 1997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 1998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 1999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 2000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 2001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 2002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 2003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 2004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 2005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 2006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_78_writeObject() { 2010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 2011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 2012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 2014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 2015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SuperclassTest2 test = new SuperclassTest2(); 2018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 2019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 2020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 2021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 2022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 2023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, test.equals(objLoaded)); 2024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 2026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 2027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 2028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 2029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 2030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 2031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 2032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 2033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 2034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 2035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_79_writeObject() { 2039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 2040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 2041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objToSave = null; 2043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object objLoaded; 2044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath SyntheticFieldTest test = new SyntheticFieldTest(); 2047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objToSave = test; 2048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (DEBUG) 2049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Obj = " + objToSave); 2050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath objLoaded = dumpAndReload(objToSave); 2051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Has to have worked 2052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(MSG_TEST_FAILED + objToSave, test.equals(objLoaded)); 2053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 2055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException serializing " + objToSave + " : " 2056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 2057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 2058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("ClassNotFoundException reading Object type : " 2059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + e.getMessage()); 2060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 2061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error when obj = " + objToSave); 2062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // err.printStackTrace(); 2063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 2064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_18_80_writeObject() { 2068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 2069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.ObjectOutputStream.writeObject(java.lang.Object) 2070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ByteArrayOutputStream out = new ByteArrayOutputStream(); 2073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath DataOutputStream dos = new DataOutputStream(out); 2074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new ObjectOutputStream(dos); // just to make sure we get a header 2075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); 2076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int length = 99; 2077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dos.writeByte(length); 2078cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < length; i++) { 2079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dos.writeByte(0); // actual value does not matter 2080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath dos.flush(); 2082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int lengthRead = 0; 2083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ObjectInputStream ois = new ObjectInputStream( 2085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new ByteArrayInputStream(out.toByteArray())); 2086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Object obj = ois.readObject(); 2087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (OptionalDataException e) { 2088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath lengthRead = e.length; 2089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Did not throw exception with optional data size ", 2091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath length == lengthRead); 2092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (ClassNotFoundException e) { 2093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Unable to read BLOCKDATA: " + e.getMessage()); 2094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 2095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException testing BLOCKDATA : " + e.getMessage()); 2096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Error err) { 2097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("Error " + err + " when testing BLOCKDATA"); 2098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw err; 2099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath} 2102