Axiom
  1. Axiom
  2. AXIOM-166

getChildrenWithQName.next throws ClassCastException, OMChildrenQNameIterator implements Iterator but does not satisfy published interface behavior

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:
      OS : Any
      Axiom Version 1.2.5
      Java Runtime version : 1.5

      Description

      Given the following xml fragment

      <ns1:BOSettings xmlns:ns1="http://a.b.c/pro">
      <ns1:ObjectType>X</ns1:ObjectType>
      </ns1:BOSettings>

      Iterator objectTypeIt = bosettings.getChildrenWithName(helper.createQNameForField("ObjectType"));

      invoking

      OMElement element = objectTypeIt.next();

      throws a ClassCastException

      the OMChildrenQNameIterator return the first child which in this case is of type OMText

      the issue can be fixed by first calling hasNext and then next, the hasNext method has a side effect which allows the next to proceed correctly.

      This behavior does not obey the published Iterator documentation, the following is expected Iterator behavior

      Iterator<Integer> it = Arrays.asList(new Integer[]

      { Integer.valueOf(1), Integer.valueOf(2),}

      );

      do
      {
      it.next();
      } while(it.hasNext());

      will work correctly and is the expected behavior.

      Whereas calling it.next on an Iterator instance of type OMChildrenQNameIterator will result in a ClassCastException

      1. _286.diff
        6 kB
        Bhaskar Maddala

        Activity

        Hide
        Rich Scheuerle added a comment -

        Revision = 634675

        Show
        Rich Scheuerle added a comment - Revision = 634675
        Hide
        Clement Chan added a comment -

        Dear Jira,
        I would like to post an error I kept facing when I run TCPMON from D:\TCPMON\tcpmon-1.0-bin\build\tcpmon.bat

        I'm quite new on this mail listing, how do get help for the below?? I just want to run TCPMon to query some web services.

        D:\TCPMON\tcpmon-1.0-bin\build>rem Run the java exe with tcpmon jar

        D:\TCPMON\tcpmon-1.0-bin\build>java -cp ./tcpmon-1.0.jar org.apache.ws.commons.t
        cpmon.TCPMon
        java.lang.NoClassDefFoundError: javax/xml/transform/Source
        at org.apache.ws.commons.tcpmon.AdminPane.<init>(AdminPane.java:418)
        at org.apache.ws.commons.tcpmon.TCPMon.<init>(TCPMon.java:78)
        at org.apache.ws.commons.tcpmon.TCPMon.<init>(TCPMon.java:119)
        at org.apache.ws.commons.tcpmon.TCPMon.main(TCPMon.java:172)

        Rgds,
        Clement Chan
        (chanlman@yahoo.com)

        Show
        Clement Chan added a comment - Dear Jira, I would like to post an error I kept facing when I run TCPMON from D:\TCPMON\tcpmon-1.0-bin\build\tcpmon.bat I'm quite new on this mail listing, how do get help for the below?? I just want to run TCPMon to query some web services. D:\TCPMON\tcpmon-1.0-bin\build>rem Run the java exe with tcpmon jar D:\TCPMON\tcpmon-1.0-bin\build>java -cp ./tcpmon-1.0.jar org.apache.ws.commons.t cpmon.TCPMon java.lang.NoClassDefFoundError: javax/xml/transform/Source at org.apache.ws.commons.tcpmon.AdminPane.<init>(AdminPane.java:418) at org.apache.ws.commons.tcpmon.TCPMon.<init>(TCPMon.java:78) at org.apache.ws.commons.tcpmon.TCPMon.<init>(TCPMon.java:119) at org.apache.ws.commons.tcpmon.TCPMon.main(TCPMon.java:172) Rgds, Clement Chan (chanlman@yahoo.com)
        Hide
        Rich Scheuerle added a comment -

        This should be considered for 1.2.6. There have been recent changes in this area of code, and perhaps this issue is now fixed.

        I will assign it to myself for evaluation.

        Show
        Rich Scheuerle added a comment - This should be considered for 1.2.6. There have been recent changes in this area of code, and perhaps this issue is now fixed. I will assign it to myself for evaluation.
        Hide
        Bhaskar Maddala added a comment - - edited

        Attachment _286.diff implements a unit test that shows the bug as well as the fix in OMChildrenQNameIterator

        Show
        Bhaskar Maddala added a comment - - edited Attachment _286.diff implements a unit test that shows the bug as well as the fix in OMChildrenQNameIterator

          People

          • Assignee:
            Rich Scheuerle
            Reporter:
            Bhaskar Maddala
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development