Rich, did you miss some implementations of the new operations in TypeTestBindingImpl?
--G > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Sent: Friday, May 31, 2002 11:17 AM > To: [EMAIL PROTECTED] > Subject: cvs commit: xml-axis/java/test/wsdl/types > ComprehensiveTypes.wsdl VerifyTestCase.java > > > scheu 2002/05/31 08:17:11 > > Modified: java/src/org/apache/axis/wsdl/toJava > JavaBeanWriter.java > java/test/wsdl/types ComprehensiveTypes.wsdl > VerifyTestCase.java > Log: > Fix for defect > http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9257 > > If a complexType does not have any contained elements or attributes, > the fault class generated for the complexType cannot be compiled. > > Added a simple fix to the JavaBeanWriter to only generate the > full constructor if there are actually elements/attributes to > pass in. > > Changed the comprehensive test to add two new complexTypes, > emptyFault and emptyComplexType, which have no contained elements > or attributes. This addition validates the processing. > > Revision Changes Path > 1.15 +28 -27 > xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanWriter.java > > Index: JavaBeanWriter.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBe > anWriter.java,v > retrieving revision 1.14 > retrieving revision 1.15 > diff -u -r1.14 -r1.15 > --- JavaBeanWriter.java 14 May 2002 23:46:34 -0000 1.14 > +++ JavaBeanWriter.java 31 May 2002 15:17:10 -0000 1.15 > @@ -373,37 +373,38 @@ > > > // Now write the constructor signature > - pw.println(" public " + className + "("); > - for (int i=0; i<paramTypes.size(); i++) { > - pw.print(" " + paramTypes.elementAt(i) + > - " " + paramNames.elementAt(i)); > - if ((i+1) < paramTypes.size()) { > - pw.println(","); > - } else { > - pw.println(") {"); > - } > - } > - > - // Call the extended constructor to set inherited fields > - if (extendType != null) { > - pw.println(" super("); > - for (int j=0; j<localParams; j++) { > - pw.print(" " + paramNames.elementAt(j)); > - if ((j+1) < localParams) { > + if (paramTypes.size() > 0) { > + pw.println(" public " + className + "("); > + for (int i=0; i<paramTypes.size(); i++) { > + pw.print(" " + paramTypes.elementAt(i) + > + " " + paramNames.elementAt(i)); > + if ((i+1) < paramTypes.size()) { > pw.println(","); > } else { > - pw.println(");"); > + pw.println(") {"); > } > - } > + } > + > + // Call the extended constructor to set > inherited fields > + if (extendType != null) { > + pw.println(" super("); > + for (int j=0; j<localParams; j++) { > + pw.print(" " + > paramNames.elementAt(j)); > + if ((j+1) < localParams) { > + pw.println(","); > + } else { > + pw.println(");"); > + } > + } > + } > + // Set local fields directly > + for (int j=localParams; j<paramNames.size(); j++) { > + pw.println(" this." + > paramNames.elementAt(j) + > + " = " + paramNames.elementAt(j)+ ";"); > + } > + pw.println(" }"); > + pw.println(); > } > - // Set local fields directly > - for (int j=localParams; j<paramNames.size(); j++) { > - pw.println(" this." + paramNames.elementAt(j) + > - " = " + paramNames.elementAt(j)+ ";"); > - } > - pw.println(" }"); > - pw.println(); > - > } > > /** > > > > 1.29 +108 -0 > xml-axis/java/test/wsdl/types/ComprehensiveTypes.wsdl > > Index: ComprehensiveTypes.wsdl > =================================================================== > RCS file: > /home/cvs/xml-axis/java/test/wsdl/types/ComprehensiveTypes.wsdl,v > retrieving revision 1.28 > retrieving revision 1.29 > diff -u -r1.28 -r1.29 > --- ComprehensiveTypes.wsdl 26 May 2002 15:31:33 -0000 1.28 > +++ ComprehensiveTypes.wsdl 31 May 2002 15:17:11 -0000 1.29 > @@ -133,6 +133,14 @@ > </xsd:sequence> > </xsd:complexType> > > + <xsd:complexType name="emptyFault"> > + <xsd:sequence /> > + </xsd:complexType> > + > + <xsd:complexType name="emptyComplexType"> > + <xsd:sequence /> > + </xsd:complexType> > + > <xsd:simpleType name="simpleFwd"> > <xsd:restriction base="typens:simple" /> > </xsd:simpleType> > @@ -602,6 +610,14 @@ > <part name="cat" type="typens:Cat"/> > </message> > > + <message name="emptyFault"> > + <part name="theFault" type="typens:emptyFault" /> > + </message> > + > + <message name="emptyComplexType"> > + <part name="emptyComplexType" type="typens:emptyComplexType" /> > + </message> > + > <!-- port type declns --> > <portType name="TypeTest"> > <operation name="allPrimitivesIn"> > @@ -730,6 +746,26 @@ > <input message="tns:empty"/> > <output message="tns:complexWComplex"/> > </operation> > + <operation name="emptyComplexTypeIn" > parameterOrder="emptyComplexType"> > + <input message="tns:emptyComplexType"/> > + <output message="tns:empty"/> > + <fault name="emptyFault" message="tns:emptyFault"/> > + </operation> > + <operation name="emptyComplexTypeInout" > parameterOrder="emptyComplexType"> > + <input message="tns:emptyComplexType"/> > + <output message="tns:emptyComplexType"/> > + <fault name="emptyFault" message="tns:emptyFault"/> > + </operation> > + <operation name="emptyComplexTypeOut" > parameterOrder="emptyComplexType"> > + <input message="tns:empty"/> > + <output message="tns:emptyComplexType"/> > + <fault name="emptyFault" message="tns:emptyFault"/> > + </operation> > + <operation name="emptyComplexTypeReturn"> > + <input message="tns:empty"/> > + <output message="tns:emptyComplexType"/> > + <fault name="emptyFault" message="tns:emptyFault"/> > + </operation> > <operation name="anyIn"> > <input message="tns:any"/> > <output message="tns:empty"/> > @@ -1345,6 +1381,78 @@ > namespace="" > > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > </output> > + </operation> > + <operation name="emptyComplexTypeIn"> > + <soap:operation soapAction=""/> > + <input> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </input> > + <output> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </output> > + <fault> > + <soap:fault name="emptyFault" use="encoded"/> > + </fault> > + </operation> > + <operation name="emptyComplexTypeInout"> > + <soap:operation soapAction=""/> > + <input> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </input> > + <output> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </output> > + <fault> > + <soap:fault name="emptyFault" use="encoded"/> > + </fault> > + </operation> > + <operation name="emptyComplexTypeOut"> > + <soap:operation soapAction=""/> > + <input> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </input> > + <output> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </output> > + <fault> > + <soap:fault name="emptyFault" use="encoded"/> > + </fault> > + </operation> > + <operation name="emptyComplexTypeReturn"> > + <soap:operation soapAction=""/> > + <input> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </input> > + <output> > + <soap:body > + use="encoded" > + namespace="" > + > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> > + </output> > + <fault> > + <soap:fault name="emptyFault" use="encoded"/> > + </fault> > </operation> > <operation name="anyIn"> > <soap:operation soapAction=""/> > > > > 1.24 +27 -0 > xml-axis/java/test/wsdl/types/VerifyTestCase.java > > Index: VerifyTestCase.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/test/wsdl/types/VerifyTestCase.java,v > retrieving revision 1.23 > retrieving revision 1.24 > diff -u -r1.23 -r1.24 > --- VerifyTestCase.java 30 May 2002 23:46:04 -0000 1.23 > +++ VerifyTestCase.java 31 May 2002 15:17:11 -0000 1.24 > @@ -50,6 +50,9 @@ > import test.wsdl.types.comprehensive_types.ComplexWComplexHolder; > import test.wsdl.types.comprehensive_types.ElemWComplex; > import test.wsdl.types.comprehensive_types.ElemWComplexHolder; > +import test.wsdl.types.comprehensive_types.EmptyComplexType; > +import test.wsdl.types.comprehensive_types.EmptyComplexTypeHolder; > +import test.wsdl.types.comprehensive_types.EmptyFault; > import test.wsdl.types.comprehensive_types.Enum; > import test.wsdl.types.comprehensive_types.EnumHolder; > import test.wsdl.types.comprehensive_types.EnumByte; > @@ -363,6 +366,30 @@ > try { > ComplexWComplex value = null; > value = binding.complexWComplexReturn(); > + } catch (java.rmi.RemoteException re) { > + throw new > junit.framework.AssertionFailedError("Remote Exception > caught: " + re ); > + } > + try { > + EmptyComplexType value = new EmptyComplexType(); > + binding.emptyComplexTypeIn(value); > + } catch (java.rmi.RemoteException re) { > + throw new > junit.framework.AssertionFailedError("Remote Exception > caught: " + re ); > + } > + try { > + EmptyComplexTypeHolder value = new > EmptyComplexTypeHolder( new EmptyComplexType()); > + binding.emptyComplexTypeInout(value); > + } catch (java.rmi.RemoteException re) { > + throw new > junit.framework.AssertionFailedError("Remote Exception > caught: " + re ); > + } > + try { > + EmptyComplexTypeHolder value = new > EmptyComplexTypeHolder(); > + binding.emptyComplexTypeOut(value); > + } catch (java.rmi.RemoteException re) { > + throw new > junit.framework.AssertionFailedError("Remote Exception > caught: " + re ); > + } > + try { > + EmptyComplexType value = null; > + value = binding.emptyComplexTypeReturn(); > } catch (java.rmi.RemoteException re) { > throw new > junit.framework.AssertionFailedError("Remote Exception > caught: " + re ); > } > > > >