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;
> >>       }
> >>
> >>       /**
> >>
> >>
> >>
> >>
> >
> >
> >
> 
> 
> 

Reply via email to