Yeah, I've seen this at times as well - it seemed like it was happening once each time I cleaned out the build directory and then reran the tests from scratch, then it was fine after that. I haven't done solid research on it yet, though.
David, perhaps you and I can work together to nail down the shape of this problem into a reproducible case. --Glen > -----Original Message----- > From: Russell Butek [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, February 19, 2002 8:29 AM > To: [EMAIL PROTECTED] > Subject: RE: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava > Sch emaUtils.java > > > Ouch. No, I'm afraid I haven't seen this problem. Hopefully > someone else > can help? What platform are you on? > > Russell Butek > [EMAIL PROTECTED] > > > David Altenburg <[EMAIL PROTECTED]> on 02/18/2002 > 06:03:33 PM > > Please respond to [EMAIL PROTECTED] > > To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> > cc: > Subject: RE: cvs commit: > xml-axis/java/src/org/apache/axis/wsdl/toJava Sch > emaUtils.java > > > > > > Thanks.� Saw that, and I'd like to write one. > However, I'm having some problems running the test suite with > Ant.� I get a > ClassNotFoundException on > samples.userguide.example6.WidgetPrice (and after > commenting that out, I see that I get a ClassNotFound on > every one of the > samples classes).� That class is getting built, however, and > it is in my > classpath (xml-axis/java/build/classes).� This question is > probably better > suited for the Ant list, but I was wondering if anyone here > had had the > same problem. > > Thanks, > > David Altenburg > [EMAIL PROTECTED] > > >-----Original Message----- > >From: Russell Butek [mailto:[EMAIL PROTECTED]] > >Sent: Monday, February 18, 2002 9:59 AM > >To: [EMAIL PROTECTED] > >Subject: RE: cvs commit: > >xml-axis/java/src/org/apache/axis/wsdl/toJava Sch emaUtils.java > > > > > >David, in his commit comment, Rich said, "Need a testcase..." > > > >Hint hint! > > > >Russell Butek > >[EMAIL PROTECTED] > > > > > >David Altenburg <[EMAIL PROTECTED]> on 02/18/2002 > >09:42:37 AM > > > >Please respond to [EMAIL PROTECTED] > > > >To:�� "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> > >cc: > >Subject:� RE: cvs commit: > >xml-axis/java/src/org/apache/axis/wsdl/toJava Sch > >����� emaUtils.java > > > > > > > > > > > >Excellent.� Thanks! > > > >David Altenburg > >[EMAIL PROTECTED] > > > >>-----Original Message----- > >>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > >>Sent: Friday, February 15, 2002 5:02 PM > >>To: [EMAIL PROTECTED] > >>Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava > >>SchemaUtils.java > >> > >> > >>scheu������ 02/02/15 15:02:19 > >> > >>� Modified:��� java/src/org/apache/axis/wsdl/toJava SchemaUtils.java > >>� Log: > >>� Changes per axis-dev request from David Altenburg. > >> > >>� The WSDL2Java emitter now parses choice and group elements > >underneath > >>� complexType elements. > >> > >>� Need a testcase... > >> > >>� Revision� Changes��� Path > >>� 1.9������ +132 -21 > >>xml-axis/java/src/org/apache/axis/wsdl/toJava/SchemaUtils.java > >> > >>� Index: SchemaUtils.java > >>� > =================================================================== > >>� RCS file: > >>/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SchemaU > >>tils.java,v > >>� retrieving revision 1.8 > >>� retrieving revision 1.9 > >>� diff -u -r1.8 -r1.9 > >>� --- SchemaUtils.java 15 Feb 2002 19:41:17 -0000����� 1.8 > >>� +++ SchemaUtils.java 15 Feb 2002 23:02:19 -0000����� 1.9 > >>� @@ -163,33 +163,18 @@ > >>�������������� } > >>�������������� if (groupNode != null) { > >> > >>� -��������������� // Process each of the element nodes under > >the group > >>node > >>� +��������������� // Process each of the choice or element > >nodes under > >>the sequence/all node > >>������������������ Vector v = new Vector(); > >>������������������ NodeList elements = groupNode.getChildNodes(); > >>������������������ for (int i=0; i < elements.getLength(); i++) { > >>���������������������� QName elementKind = > >>Utils.getNodeQName(elements.item(i)); > >>���������������������� if (elementKind != null && > >>� - > >>elementKind.getLocalPart().equals("element") && > >> > >>Constants.isSchemaXSD(elementKind.getNamespaceURI())) { > >>� - > >>� -����������������������� // Get the name and type qnames. > >>� -����������������������� // The name of the element is the > >local part > >>of the name's qname. > >>� -����������������������� // The type qname is used to locate the > >>TypeEntry, which is then > >>� -����������������������� // used to retrieve the proper > >java name of > >>the type. > >>� -����������������������� Node elementNode = elements.item(i); > >>� -����������������������� QName nodeName = > >>Utils.getNodeNameQName(elementNode); > >>� -����������������������� BooleanHolder forElement = new > >>BooleanHolder(); > >>� -����������������������� QName nodeType = > >>Utils.getNodeTypeRefQName(elementNode, forElement); > >>� -����������������������� if (nodeType == null) { // The > element may > >>use an anonymous type > >>� -��������������������������� nodeType = nodeName; > >>� -��������������������������� forElement.value = false; > >>� -����������������������� } > >>� - > >>� -����������������������� TypeEntry type = (TypeEntry) > >>symbolTable.getTypeEntry(nodeType, > >>� - > >>����������������� forElement.value); > >>� -����������������������� if (type != null) { > >>� -��������������������������� v.add(type); > >>� -��������������������������� v.add(nodeName.getLocalPart()); > >>� +����������������������� if ( > >>elementKind.getLocalPart().equals("element")) { > >>� + > >>v.addAll(processChildElementNode(elements.item(i), symbolTable)); > >>� +����������������������� } else if > >>(elementKind.getLocalPart().equals("choice")) { > >>� +��������������������������� Vector choiceElems = > >>processChoiceNode(elements.item(i), symbolTable); > >>� +��������������������������� v.addAll(choiceElems); > >>�������������������������� } > >>���������������������� } > >>������������������ } > >>� @@ -197,6 +182,132 @@ > >>�������������� } > >>���������� } > >>���������� return null; > >>� +��� } > >>� + > >>� +��� /** > >>� +���� * Invoked by getComplexElementTypesAndNames to get the child > >>element types > >>� +���� * and child element names underneath a Choice Node > >>� +���� */ > >>� +��� private static Vector processChoiceNode(Node choiceNode, > >>SymbolTable symbolTable) { > >>� +������� Vector v = new Vector(); > >>� +������� NodeList children = choiceNode.getChildNodes(); > >>� +������� for (int j = 0; j < children.getLength(); j++) { > >>� +����������� QName subNodeKind = > >>Utils.getNodeQName(children.item(j)); > >>� +����������� if (subNodeKind != null && > >>� + > >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { > >>� +��������������� if > (subNodeKind.getLocalPart().equals("choice")) { > >>� + > >>v.addAll(processChoiceNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("sequence")) { > >>� + > >>v.addAll(processSequenceNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("group")) { > >>� + > >>v.addAll(processGroupNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("element")) { > >>� + > >>v.addAll(processChildElementNode(children.item(j), symbolTable)); > >>� +��������������� } > >>� +����������� } > >>� +������� } > >>� +������� return v; > >>� +��� } > >>� + > >>� +��� /** > >>� +���� * Invoked by getComplexElementTypesAndNames to get the child > >>element types > >>� +���� * and child element names underneath a Sequence Node > >>� +���� */ > >>� +��� private static Vector processSequenceNode(Node sequenceNode, > >>SymbolTable symbolTable) { > >>� +������� Vector v = new Vector(); > >>� +������� NodeList children = sequenceNode.getChildNodes(); > >>� +������� for (int j = 0; j < children.getLength(); j++) { > >>� +����������� QName subNodeKind = > >>Utils.getNodeQName(children.item(j)); > >>� +����������� if (subNodeKind != null && > >>� + > >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { > >>� +��������������� if > (subNodeKind.getLocalPart().equals("choice")) { > >>� + > >>v.addAll(processChoiceNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("sequence")) { > >>� + > >>v.addAll(processSequenceNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("group")) { > >>� + > >>v.addAll(processGroupNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("element")) { > >>� + > >>v.addAll(processChildElementNode(children.item(j), symbolTable)); > >>� +��������������� } > >>� +����������� } > >>� +������� } > >>� +������� return v; > >>� +��� } > >>� + > >>� +��� /** > >>� +���� * Invoked by getComplexElementTypesAndNames to get the child > >>element types > >>� +���� * and child element names underneath a group node. > >>� +���� * (Currently the code only supports a defined group > >it does not > >>� +���� * support a group that references a previously > defined group) > >>� +���� */ > >>� +��� private static Vector processGroupNode(Node groupNode, > >>SymbolTable symbolTable) { > >>� +������� Vector v = new Vector(); > >>� +������� NodeList children = groupNode.getChildNodes(); > >>� +������� for (int j = 0; j < children.getLength(); j++) { > >>� +����������� QName subNodeKind = > >>Utils.getNodeQName(children.item(j)); > >>� +����������� if (subNodeKind != null && > >>� + > >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { > >>� +��������������� if > (subNodeKind.getLocalPart().equals("choice")) { > >>� + > >>v.addAll(processChoiceNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("sequence")) { > >>� + > >>v.addAll(processSequenceNode(children.item(j), symbolTable)); > >>� +��������������� } else if > >>(subNodeKind.getLocalPart().equals("all")) { > >>� + > >>v.addAll(processAllNode(children.item(j), symbolTable)); > >>� +��������������� } > >>� +����������� } > >>� +������� } > >>� +������� return v; > >>� +��� } > >>� + > >>� +��� /** > >>� +���� * Invoked by getComplexElementTypesAndNames to get the child > >>element types > >>� +���� * and child element names underneath an all node. > >>� +���� */ > >>� +��� private static Vector processAllNode(Node allNode, > SymbolTable > >>symbolTable) { > >>� +������� Vector v = new Vector(); > >>� +������� NodeList children = allNode.getChildNodes(); > >>� +������� for (int j = 0; j < children.getLength(); j++) { > >>� +����������� QName subNodeKind = > >>Utils.getNodeQName(children.item(j)); > >>� +����������� if (subNodeKind != null && > >>� + > >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { > >>� +��������������� if > (subNodeKind.getLocalPart().equals("element")) { > >>� + > >>v.addAll(processChildElementNode(children.item(j), symbolTable)); > >>� +��������������� } > >>� +����������� } > >>� +������� } > >>� +������� return v; > >>� +��� } > >>� + > >>� + > >>� +��� /** > >>� +���� * Invoked by getComplexElementTypesAndNames to get the child > >>element type > >>� +���� * and child element name for a child element node. > >>� +���� * > >>� +���� * If the specified node represents a supported JAX-RPC child > >>element, > >>� +���� * a Vector is returned which contains the child element type > >>and > >>� +���� * child element name.� The 0th index is the element types > >>(TypeEntry) and > >>� +���� * the 1st index is the corresponding name (Strings). > >>� +���� */ > >>� +��� private static Vector processChildElementNode(Node > >elementNode, > >>SymbolTable symbolTable) { > >>� +������� Vector v = new Vector(); > >>� +������� // Get the name and type qnames. > >>� +������� // The name of the element is the local part of > the name's > >>qname. > >>� +������� // The type qname is used to locate the TypeEntry, > >which is > >>then > >>� +������� // used to retrieve the proper java name of the type. > >>� +������� QName nodeName = Utils.getNodeNameQName(elementNode); > >>� +������� BooleanHolder forElement = new BooleanHolder(); > >>� +������� QName nodeType = Utils.getNodeTypeRefQName(elementNode, > >>forElement); > >>� +������� if (nodeType == null) { // The element may use an > >anonymous > >>type > >>� +������������ nodeType = nodeName; > >>� +������������ forElement.value = false; > >>� +������� } > >>� + > >>� +������� TypeEntry type = (TypeEntry) > >>symbolTable.getTypeEntry(nodeType, forElement.value); > >>� +������� if (type != null) { > >>� +����������� v.add(type); > >>� +����������� v.add(nodeName.getLocalPart()); > >>� +������� } > >>� +������� return v; > >>������ } > >> > >>������ /** > >> > >> > >> > >> > > > > > > > > >
