1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.io;
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException;
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.NotSerializableException;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.Serializable;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Hashtable;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Vector;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes@SuppressWarnings( { "serial", "unused" })
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class SerializationStressTest1 extends SerializationStressTest {
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// The purpose of these two classes is to test if serialization, when
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// loading, runs the object's constructor (wrong) or the constructor defined
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// at the topmost Serializable superclass(correct).
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static final int INIT_INT_VALUE = 7;
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// HAS to be static class so that our constructor signature will remain
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// untouched (no synthetic param)
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class SerializationTest implements java.io.Serializable {
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int anInt = INIT_INT_VALUE;
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public SerializationTest() {
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static final String INIT_STR_VALUE = "a string that is blortz";
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// HAS to be static class so that our constructor signature will remain
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// untouched (no synthetic param)
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class SerializationTestSubclass1 extends SerializationTest {
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		String aString = INIT_STR_VALUE;
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public SerializationTestSubclass1() {
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Just to change default superclass init value
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			anInt = INIT_INT_VALUE / 2;
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// -----------------------------------------------------------------------------------
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class SpecTestSuperClass implements Runnable {
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		protected java.lang.String instVar;
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void run() {
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class SpecTest extends SpecTestSuperClass implements
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Cloneable, Serializable {
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public java.lang.String instVar1;
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public static java.lang.String staticVar1;
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public static java.lang.String staticVar2;
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		{
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			instVar1 = "NonStaticInitialValue";
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		static {
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			staticVar1 = "StaticInitialValue";
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			staticVar1 = new String(staticVar1);
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Object method(Object objParam, Object objParam2) {
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return new Object();
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean method(boolean bParam, Object objParam) {
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return true;
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean method(boolean bParam, Object objParam, Object objParam2) {
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return true;
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class SpecTestSubclass extends SpecTest {
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public transient java.lang.String transientInstVar = "transientValue";
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// -----------------------------------------------------------------------------------
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests what happens if the read/writeObject methods are defined
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Serialization should work fine.
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class ReadWriteObject implements java.io.Serializable {
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean calledWriteObject = false;
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean calledReadObject = false;
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public ReadWriteObject() {
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void readObject(java.io.ObjectInputStream in)
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			calledReadObject = true;
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			in.readObject();
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void writeObject(java.io.ObjectOutputStream out)
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException {
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			calledWriteObject = true;
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			out.writeObject(FOO);
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests what happens if the read/writeObject methods are not
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// private.
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Serialization should fail.
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class PublicReadWriteObject implements java.io.Serializable {
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean calledWriteObject = false;
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean calledReadObject = false;
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public PublicReadWriteObject() {
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void readObject(java.io.ObjectInputStream in)
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			calledReadObject = true;
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			in.readObject();
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void writeObject(java.io.ObjectOutputStream out)
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException {
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			calledWriteObject = true;
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			out.writeObject(FOO);
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests if field names are serialized in the same way (sorting)
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// across different VMs
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class FieldOrder implements Serializable {
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		String aaa1NonPrimitive = "aaa1";
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int bbb1PrimitiveInt = 5;
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean aaa2PrimitiveBoolean = true;
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		String bbb2NonPrimitive = "bbb2";
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests what happens if you define just readObject, but not
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// writeObject.
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Does it run or not ?
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class JustReadObject implements java.io.Serializable {
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean calledReadObject = false;
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public JustReadObject() {
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void readObject(java.io.ObjectInputStream in)
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			calledReadObject = true;
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			in.defaultReadObject();
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests what happens if you define just writeObject, but not
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// readObject.
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Does it run or not ?
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class JustWriteObject implements java.io.Serializable {
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean calledWriteObject = false;
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public JustWriteObject() {
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void writeObject(java.io.ObjectOutputStream out)
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			calledWriteObject = true;
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			out.defaultWriteObject();
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests class-based replacement when dumping
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class ClassBasedReplacementWhenDumping implements
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.Serializable {
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean calledReplacement = false;
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public ClassBasedReplacementWhenDumping() {
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private Object writeReplace() {
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			calledReplacement = true;
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return FOO; // Replacement is a String
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests whether class-based replacement supports multiple levels.
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// MultipleClassBasedReplacementWhenDumping -> C1 -> C2 -> C3 -> FOO
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class MultipleClassBasedReplacementWhenDumping implements
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.Serializable {
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private static class C1 implements java.io.Serializable {
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			private Object writeReplace() {
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				return new C2();
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private static class C2 implements java.io.Serializable {
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			private Object writeReplace() {
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				return new C3();
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private static class C3 implements java.io.Serializable {
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			private Object writeReplace() {
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				return FOO;
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public MultipleClassBasedReplacementWhenDumping() {
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private Object writeReplace() {
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return new C1();
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests class-based replacement when loading
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class ClassBasedReplacementWhenLoading implements
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.Serializable {
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public ClassBasedReplacementWhenLoading() {
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private Object readResolve() {
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return FOO; // Replacement is a String
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// This one tests what happens if a loading-replacement is not
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// type-compatible with the original object
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class ClassBasedReplacementWhenLoadingViolatesFieldType
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			implements java.io.Serializable {
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public ClassBasedReplacementWhenLoading classBasedReplacementWhenLoading = new ClassBasedReplacementWhenLoading();
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public ClassBasedReplacementWhenLoadingViolatesFieldType() {
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// What happens if dumping causes an error and you try to reload ?
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Should the load throw the same exception ?
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class MyExceptionWhenDumping1 implements
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.Serializable {
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private static class MyException extends java.io.IOException {
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		};
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// A primitive instance variable exposes a bug in the serialization
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// spec.
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Primitive instance variables are written without primitive data tags
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// and so are read without checking for tags. If an exception is
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// written, reading primitive data will just read bytes from the stream
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// which may be tags
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean anInstanceVar = false;
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public MyExceptionWhenDumping1() {
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void readObject(java.io.ObjectInputStream in)
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			in.defaultReadObject();
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void writeObject(java.io.ObjectOutputStream out)
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw new MyException();
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// What happens if dumping causes an error and you try to reload ?
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Should the load throw the same exception ?
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class MyExceptionWhenDumping2 implements
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.Serializable {
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private static class MyException extends java.io.IOException {
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		};
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Integer anInstanceVar = new Integer(0xA1);
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public MyExceptionWhenDumping2() {
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void readObject(java.io.ObjectInputStream in)
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			in.defaultReadObject();
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void writeObject(java.io.ObjectOutputStream out)
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw new MyException();
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// What happens if dumping causes an error (NonSerializable inst var) and
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// you try to reload ?
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Should the load throw the same exception ?
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class NonSerializableExceptionWhenDumping implements
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.Serializable {
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Object anInstanceVar = new Object();
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public NonSerializableExceptionWhenDumping() {
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// What happens if dumping causes an error (which is not serializable) and
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// you try to reload ?
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	// Should the load throw the same exception ?
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	private static class MyUnserializableExceptionWhenDumping implements
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.Serializable {
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private static class MyException extends java.io.IOException {
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			private Object notSerializable = new Object();
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		};
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public boolean anInstanceVar = false;
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public MyUnserializableExceptionWhenDumping() {
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			super();
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void readObject(java.io.ObjectInputStream in)
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			in.defaultReadObject();
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		private void writeObject(java.io.ObjectOutputStream out)
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				throws java.io.IOException, ClassNotFoundException {
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw new MyException();
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public SerializationStressTest1(String name) {
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		super(name);
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_1_writeObject() {
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = "HelloWorld";
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, (((String) objLoaded)
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					.equals((String) objToSave)));
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type: "
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_2_writeObject() {
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = null;
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, objLoaded == objToSave);
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_3_writeObject() {
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			byte[] bytes = { 0, 1, 2, 3 };
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = bytes;
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(byte[]) objLoaded, (byte[]) objToSave));
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_4_writeObject() {
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			int[] ints = { 0, 1, 2, 3 };
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = ints;
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(int[]) objLoaded, (int[]) objToSave));
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_5_writeObject() {
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			short[] shorts = { 0, 1, 2, 3 };
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = shorts;
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(short[]) objLoaded, (short[]) objToSave));
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_6_writeObject() {
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			long[] longs = { 0, 1, 2, 3 };
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = longs;
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(long[]) objLoaded, (long[]) objToSave));
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_7_writeObject() {
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			float[] floats = { 0.0f, 1.1f, 2.2f, 3.3f };
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = floats;
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(float[]) objLoaded, (float[]) objToSave));
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data: " + e.getMessage());
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_8_writeObject() {
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			double[] doubles = { 0.0, 1.1, 2.2, 3.3 };
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = doubles;
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(double[]) objLoaded, (double[]) objToSave));
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_9_writeObject() {
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			boolean[] booleans = { true, false, false, true };
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = booleans;
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(boolean[]) objLoaded, (boolean[]) objToSave));
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : " + e.getMessage());
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_10_writeObject() {
611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			String[] strings = { "foo", "bar", "java" };
620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = strings;
621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, Arrays.equals(
625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					(Object[]) objLoaded, (Object[]) objToSave));
626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Unable to read Object type: " + e.toString());
632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_11_writeObject() {
640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Object objLoaded;
645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = new Object(); // Not serializable
649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			boolean passed = false;
652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Throwable t = null;
653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				objLoaded = dumpAndReload(objToSave);
655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (NotSerializableException ns) {
656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				passed = true;
657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				t = ns;
658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (Exception wrongExc) {
659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				passed = false;
660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				t = wrongExc;
661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Failed to throw NotSerializableException when serializing "
664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							+ objToSave + " Threw(if non-null) this: " + t,
665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					passed);
666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_12_writeObject() {
674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = <mixed>");
680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			t_MixPrimitivesAndObjects();
681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing data : " + e.getMessage());
683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when dumping mixed types");
688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_13_writeObject() {
694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			SerializationTestSubclass1 st = new SerializationTestSubclass1();
702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Just change the default ivar values
703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			st.anInt = Integer.MAX_VALUE;
704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			st.aString = FOO;
705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = st;
706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// non-serializable inst var has to be initialized from top
710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// constructor
711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					MSG_TEST_FAILED + objToSave,
713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					((SerializationTestSubclass1) objLoaded).anInt == Integer.MAX_VALUE);
714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// but serialized var has to be restored as it was in the object
715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// when dumped
716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave,
717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					((SerializationTestSubclass1) objLoaded).aString
718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							.equals(FOO));
719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Exception serializing " + objToSave + "\t->"
721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.toString());
722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			err.printStackTrace();
728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_14_writeObject() {
733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			SpecTest specTest = new SpecTest();
741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Just change the default ivar values
742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			specTest.instVar = FOO;
743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			specTest.instVar1 = specTest.instVar;
744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = specTest;
745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// non-serializable inst var has to be initialized from top
749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// constructor
750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertNull(MSG_TEST_FAILED + objToSave,
751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					((SpecTest) objLoaded).instVar);
752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// instVar from non-serialized class, cant  be  saved/restored
753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// by serialization but serialized ivar has to be restored as it
754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// was in the object when dumped
755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave,
756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					((SpecTest) objLoaded).instVar1.equals(FOO));
757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Exception serializing " + objToSave + "\t->"
760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.toString());
761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_15_writeObject() {
772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			SpecTestSubclass specTestSubclass = new SpecTestSubclass();
780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Just change the default ivar values
781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			specTestSubclass.transientInstVar = FOO;
782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = specTestSubclass;
783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// non-serializable inst var cant be saved, and it is not init'ed
787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// from top constructor in this case
788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertNull(MSG_TEST_FAILED + objToSave,
789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					((SpecTestSubclass) objLoaded).transientInstVar);
790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// transient slot, cant be saved/restored by serialization
791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Exception serializing " + objToSave + "\t->"
793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.toString());
794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_16_writeObject() {
805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			String[] strings = new String[2];
814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			strings[0] = FOO;
815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			strings[1] = (" " + FOO + " ").trim(); // Safe way to get a copy
816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// that is not ==
817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = strings;
818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			String[] stringsLoaded = (String[]) objLoaded;
822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Serialization has to use identity-based table for assigning IDs
823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave,
824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					!(stringsLoaded[0] == stringsLoaded[1]));
825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Exception serializing " + objToSave + "\t->"
827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.toString());
828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_17_writeObject() {
839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ReadWriteObject readWrite = new ReadWriteObject();
848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = readWrite;
849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// has to have called the writeObject on the instance to dump
853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, readWrite.calledWriteObject);
854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// has to have called the readObject on the instance loaded
855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave,
856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					((ReadWriteObject) objLoaded).calledReadObject);
857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Exception serializing " + objToSave + "\t->"
860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.toString());
861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_18_writeObject() {
872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			PublicReadWriteObject publicReadWrite = new PublicReadWriteObject();
880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = publicReadWrite;
881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Can't have called the writeObject on the instance to dump
885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave,
886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					!publicReadWrite.calledWriteObject);
887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Can't have called the readObject on the instance loaded
888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave,
889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					!((PublicReadWriteObject) objLoaded).calledReadObject);
890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Exception serializing " + objToSave + "\t->"
893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.toString());
894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_19_writeObject() {
905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			FieldOrder fieldOrder = new FieldOrder();
913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = fieldOrder;
914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// This test is only useful for X-loading, so if it managed to
918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// dump&load, we passed the test
919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, true);
920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_20_writeObject() {
935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = Class.forName("java.lang.Integer");
943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Classes with the same name are unique, so test for ==
947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, objLoaded == objToSave);
948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_21_writeObject() {
963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Even though instances of java.lang.Object are not Serializable,
971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// instances of java.lang.Class are. So, the object
972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// java.lang.Object.class
973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// should be serializable
974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = Class.forName("java.lang.Object");
975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Classes with the same name are unique, so test for ==
979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, objLoaded == objToSave);
980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_22_writeObject() {
995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.net.URL url = new java.net.URL("http://localhost/a.txt");
1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = url;
1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("URLs are not the same: " + url + "\t,\t" + objLoaded,
1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					url.equals(objLoaded));
1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_23_writeObject() {
1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			JustReadObject justReadObject = new JustReadObject();
1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = justReadObject;
1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Only calls readObject on the instance loaded if writeObject was
1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// also defined
1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Called readObject on an object without a writeObject",
1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					!((JustReadObject) objLoaded).calledReadObject);
1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_24_writeObject() {
1056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			JustWriteObject justWriteObject = new JustWriteObject();
1065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = justWriteObject;
1066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Call writeObject on the instance even if it does not define
1070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// readObject
1071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave,
1072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					justWriteObject.calledWriteObject);
1073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type: "
1079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_25_writeObject() {
1088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Vector<String> vector = new Vector<String>(1);
1096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			vector.add(FOO);
1097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = vector;
1098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to have the string there
1102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, FOO
1103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					.equals(((java.util.Vector) objLoaded).elementAt(0)));
1104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_26_writeObject() {
1118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			Hashtable<String, String> hashTable = new Hashtable<String, String>(
1126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    5);
1127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            hashTable.put(FOO, FOO);
1128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            objToSave = hashTable;
1129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            if (DEBUG)
1130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.util.Hashtable loadedHashTable = (java.util.Hashtable) objLoaded;
1133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to have the key/value there (FOO -> FOO)
1134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, FOO.equals(loadedHashTable
1135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					.get(FOO)));
1136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_27_writeObject() {
1150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ClassBasedReplacementWhenDumping classBasedReplacementWhenDumping = new ClassBasedReplacementWhenDumping();
1158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = classBasedReplacementWhenDumping;
1159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to have run the replacement method
1163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Did not run writeReplace",
1164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					classBasedReplacementWhenDumping.calledReplacement);
1165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to have loaded a String (replacement object)
1167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Did not replace properly", FOO.equals(objLoaded));
1168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_28_writeObject() {
1183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			MultipleClassBasedReplacementWhenDumping multipleClassBasedReplacementWhenDumping = new MultipleClassBasedReplacementWhenDumping();
1191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = multipleClassBasedReplacementWhenDumping;
1192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to have loaded a String (replacement object)
1196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
1197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Executed multiple levels of replacement (see PR 1F9RNT1), loaded= "
1198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes							+ objLoaded,
1199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					objLoaded instanceof MultipleClassBasedReplacementWhenDumping.C1);
1200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.toString());
1207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_29_writeObject() {
1215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ClassBasedReplacementWhenLoading classBasedReplacementWhenLoading = new ClassBasedReplacementWhenLoading();
1223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = classBasedReplacementWhenLoading;
1224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to have loaded a String (replacement object)
1228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Did not run readResolve", FOO.equals(objLoaded));
1229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_30_writeObject() {
1244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			ClassBasedReplacementWhenLoadingViolatesFieldType classBasedReplacementWhenLoadingViolatesFieldType = new ClassBasedReplacementWhenLoadingViolatesFieldType();
1252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = classBasedReplacementWhenLoadingViolatesFieldType;
1253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// We cannot gere here, the load replacement must have caused a
1257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// field type violation
1258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail(
1259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Loading replacements can cause field type violation in this implementation");
1260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassCastException e) {
1268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
1269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Loading replacements can NOT cause field type violation in this implementation",
1270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					true);
1271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_31_writeObject() {
1279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			MyExceptionWhenDumping1 exceptionWhenDumping = new MyExceptionWhenDumping1();
1287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = exceptionWhenDumping;
1288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			boolean causedException = false;
1291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
1292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				dump(objToSave);
1293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (MyExceptionWhenDumping1.MyException e) {
1294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				causedException = true;
1295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
1296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			;
1297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Should have caused an exception when dumping",
1298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					causedException);
1299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			causedException = false;
1300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
1301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				objLoaded = reload();
1302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				// Although the spec says we should get a WriteAbortedException,
1303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				// the serialization format handle an Exception when reading
1304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				// primitive data so we get ClassCastException instead
1305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (ClassCastException e) {
1306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				causedException = true;
1307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
1308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			;
1309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Should have caused a ClassCastException when loading",
1310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					causedException);
1311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_32_writeObject() {
1325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			MyExceptionWhenDumping2 exceptionWhenDumping = new MyExceptionWhenDumping2();
1333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = exceptionWhenDumping;
1334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			boolean causedException = false;
1337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
1338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				dump(objToSave);
1339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (MyExceptionWhenDumping2.MyException e) {
1340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				causedException = true;
1341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
1342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			;
1343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Should have caused an exception when dumping",
1344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					causedException);
1345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			causedException = false;
1346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
1347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				objLoaded = reload();
1348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (java.io.WriteAbortedException e) {
1349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				causedException = true;
1350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
1351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			;
1352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
1353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Should have caused a java.io.WriteAbortedException when loading",
1354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					causedException);
1355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassCastException e) {
1362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassCastException : " + e.getMessage());
1363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_NonSerializableExceptionWhenDumping() {
1370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			NonSerializableExceptionWhenDumping nonSerializableExceptionWhenDumping = new NonSerializableExceptionWhenDumping();
1378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = nonSerializableExceptionWhenDumping;
1379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			boolean causedException = false;
1382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
1383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				dump(objToSave);
1384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (java.io.NotSerializableException e) {
1385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				causedException = true;
1386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
1387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			;
1388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Should have caused an exception when dumping",
1389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					causedException);
1390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			causedException = false;
1391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
1392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				objLoaded = reload();
1393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (java.io.WriteAbortedException e) {
1394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				causedException = true;
1395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
1396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			;
1397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(
1398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					"Should have caused a java.io.WriteAbortedException when loading",
1399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					causedException);
1400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_33_writeObject() {
1414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			MyUnserializableExceptionWhenDumping exceptionWhenDumping = new MyUnserializableExceptionWhenDumping();
1422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = exceptionWhenDumping;
1423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			boolean causedException = false;
1426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			try {
1427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				dump(objToSave);
1428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			} catch (java.io.StreamCorruptedException e) {
1429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				causedException = true;
1430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			}
1431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			;
1432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue("Should have caused an exception when dumping",
1433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					causedException);
1434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// As the stream is corrupted, reading the stream will have
1435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// undefined results
1436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_34_writeObject() {
1450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.IOException ioe = new java.io.IOException();
1458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = ioe;
1459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to be able to save/load an exception
1463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, true);
1464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_35_writeObject() {
1479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = Class.forName("java.util.Hashtable");
1487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Classes with the same name are unique, so test for ==
1491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, objLoaded == objToSave);
1492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_36_writeObject() {
1507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.IOException ex = new java.io.InvalidClassException(FOO);
1515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = ex;
1516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to be able to save/load an exception
1520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, true);
1521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_37_writeObject() {
1536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.IOException ex = new java.io.InvalidObjectException(FOO);
1544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = ex;
1545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to be able to save/load an exception
1549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, true);
1550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_38_writeObject() {
1565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.IOException ex = new java.io.NotActiveException(FOO);
1573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = ex;
1574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to be able to save/load an exception
1578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, true);
1579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_39_writeObject() {
1594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.IOException ex = new java.io.NotSerializableException(FOO);
1602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = ex;
1603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to be able to save/load an exception
1607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, true);
1608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_18_40_writeObject() {
1623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
1624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.io.ObjectOutputStream.writeObject(java.lang.Object)
1625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objToSave = null;
1627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object objLoaded;
1628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
1630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			java.io.IOException ex = new java.io.StreamCorruptedException(FOO);
1631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objToSave = ex;
1632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (DEBUG)
1633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				System.out.println("Obj = " + objToSave);
1634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objLoaded = dumpAndReload(objToSave);
1635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// Has to be able to save/load an exception
1636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			assertTrue(MSG_TEST_FAILED + objToSave, true);
1637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
1638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IOException e) {
1639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("IOException serializing " + objToSave + " : "
1640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (ClassNotFoundException e) {
1642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("ClassNotFoundException reading Object type : "
1643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes					+ e.getMessage());
1644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (Error err) {
1645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			System.out.println("Error when obj = " + objToSave);
1646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// err.printStackTrace();
1647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			throw err;
1648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
1649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
1650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
1651