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