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 Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.text.tests.java.text; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayInputStream; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayOutputStream; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.InvalidObjectException; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ObjectInputStream; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ObjectOutputStream; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.DateFormat; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.DateFormat.Field; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Calendar; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class DataFormatFieldTest extends TestCase{ 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_lang_StringLjava_lang_String() { 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-178 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyField field = new MyField("day of month", Calendar.ERA); 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("field has wrong name", "day of month", field.getName()); 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("field has wrong Calendar field number", Calendar.ERA, 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes field.getCalendarField()); 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field realField = DateFormat.Field 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .ofCalendarField(Calendar.ERA); 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Modified calendar field with the same field number", 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.ERA, realField); 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field realField2 = DateFormat.Field 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .ofCalendarField(Calendar.DAY_OF_MONTH); 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Modified calendar field with the same field number", 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.DAY_OF_MONTH, realField2); 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class MyField extends DateFormat.Field { 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final long serialVersionUID = 1L; 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected MyField(String fieldName, int calendarField) { 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(fieldName, calendarField); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected String getName() { 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return super.getName(); 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.DateFormat$Field#Field(java.lang.String, int) 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_lang_StringI() { 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyField field = new MyField("a field", Calendar.DAY_OF_WEEK); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("field has wrong name", "a field", field.getName()); 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("field has wrong Calendar field number", 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Calendar.DAY_OF_WEEK, field.getCalendarField()); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field realField = DateFormat.Field 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .ofCalendarField(Calendar.DAY_OF_WEEK); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Modified calendar field with the same field number", 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.DAY_OF_WEEK, realField); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.DateFormat$Field#Field(java.lang.String, int) 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_Constructor2() { 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyField field = new MyField("day of month", Calendar.ERA); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("field has wrong name", "day of month", field.getName()); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("field has wrong Calendar field number", Calendar.ERA, 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes field.getCalendarField()); 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field realField = DateFormat.Field 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .ofCalendarField(Calendar.ERA); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Modified calendar field with the same field number", 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.ERA, realField); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field realField2 = DateFormat.Field 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .ofCalendarField(Calendar.DAY_OF_MONTH); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Modified calendar field with the same field number", 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.DAY_OF_MONTH, realField2); 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.DateFormat$Field#getCalendarField() 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getCalendarField() { 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int getCalendarField() 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Field.AM_PM.getCalendarField() returned the wrong value", 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Calendar.AM_PM, Field.AM_PM.getCalendarField()); 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test special cases 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Field.TIME_ZONE.getCalendarField() returned the wrong value", 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes -1, Field.TIME_ZONE.getCalendarField()); 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Field.HOUR0.getCalendarField() returned the wrong value", 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Calendar.HOUR, Field.HOUR0.getCalendarField()); 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Field.HOUR1.getCalendarField() returned the wrong value", 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes -1, Field.HOUR1.getCalendarField()); 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Field.HOUR_OF_DAY0.getCalendarField() returned the wrong value", 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Calendar.HOUR_OF_DAY, Field.HOUR_OF_DAY0.getCalendarField()); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Field.HOUR_OF_DAY1.getCalendarField() returned the wrong value", 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes -1, Field.HOUR_OF_DAY1.getCalendarField()); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.DateFormat$Field#ofCalendarField(int) 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ofCalendarFieldI() { 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method static java.text.DateFormat.Field 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // ofCalendarField(int) 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("ofCalendarField(Calendar.AM_PM) returned the wrong value", 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field.AM_PM, Field.ofCalendarField(Calendar.AM_PM)); 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test special cases 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("ofCalendarField(Calendar.HOUR) returned the wrong value", 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field.HOUR0, Field.ofCalendarField(Calendar.HOUR)); 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame( 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "ofCalendarField(Calendar.HOUR_OF_DAY) returned the wrong value", 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Field.HOUR_OF_DAY0, Field.ofCalendarField(Calendar.HOUR_OF_DAY)); 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test illegal args 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.ofCalendarField(-1); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IllegalArgumentException for ofCalendarField(-1)"); 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.ofCalendarField(Calendar.FIELD_COUNT); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IllegalArgumentException for ofCalendarField(Calendar.FIELD_COUNT)"); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test Calendar fields that do not have corresponding DateFormat Fields 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull( 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "ofCalendarField(Calendar.DST_OFFSET) returned the wrong value", 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.ofCalendarField(Calendar.DST_OFFSET)); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull( 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "ofCalendarField(Calendar.ZONE_OFFSET) returned the wrong value", 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field.ofCalendarField(Calendar.ZONE_OFFSET)); 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.DateFormat$Field#readResolve() 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_readResolve() { 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test for method java.lang.Object readResolve() 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // see serialization stress tests: 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // implemented in 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // SerializationStressTest4.test_writeObject_NumberFormat_Field() 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ObjectOutputStream out = null; 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ObjectInputStream in = null; 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = new ObjectOutputStream(bytes); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DateFormat.Field dfield, dfield2; 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyField field; 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a regular instance of DateFormat.Field 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes dfield = DateFormat.Field.MILLISECOND; 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a subclass instance with null name 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes field = new MyField(null, Calendar.AM_PM); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.writeObject(dfield); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.writeObject(field); 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = new ObjectInputStream(new ByteArrayInputStream(bytes 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .toByteArray())); 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes dfield2 = (Field) in.readObject(); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("resolved incorrectly", dfield, dfield2); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Unexpected IllegalArgumentException: " + e); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in.readObject(); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected InvalidObjectException for subclass instance with null name"); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidObjectException e) { 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("unexpected IOException" + e); 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (ClassNotFoundException e) { 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("unexpected ClassNotFoundException" + e); 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } finally { 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (out != null) 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.close(); 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (in != null) 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in.close(); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 224