/* * Copyright 2002-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package test.typedesc; import junit.framework.TestCase; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.description.AttributeDesc; import org.apache.axis.description.TypeDesc; import org.apache.axis.encoding.ser.BeanSerializerFactory; import org.apache.axis.encoding.ser.BeanDeserializerFactory; import javax.xml.namespace.QName; /** * Confirm TypeDesc bugs are indeed fixed. * * See http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22819 for details * * @author gawor@mcs.anl.gov */ public class TestTypeDescSynch extends TestCase { public TestTypeDescSynch(String name) { super(name); } public TestTypeDescSynch() { super("Test TypeDesc Synch"); } // with won't fail public void testFields() throws Exception { TypeDesc desc= TypeDesc.getTypeDescForClass(ComplexBean2.class); for (int i=0; i < 10; i++) { desc.getFields(true); // Check to make sure we keep to the constant 5 fields (this // used to grow each time we called getFields(true)). assertEquals(5, desc.getFields().length); } } // this should fail public void testFields2() throws Exception { Service service = new Service(); Call call = (Call)service.createCall(); call.registerTypeMapping(ComplexBean3.class, new QName("foo2", "bar2"), BeanSerializerFactory.class, BeanDeserializerFactory.class, false); TypeDesc desc= TypeDesc.getTypeDescForClass(ComplexBean3.class); assertEquals(4, desc.getFields().length); } // this might fail public void testSynch() throws Exception { int threads = 30; ThreadTest[] thread = new ThreadTest[threads]; for (int i=0;i