Commons JXPath
  1. Commons JXPath
  2. JXPATH-5

asPath() returns a path to the last sibling

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2 Final
    • Fix Version/s: 1.3
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

      Description

      The method call JXPathContext::iteratePointers() returns the correct number of
      pointers. However, the pointers do not always return correct path on asPath()
      method call on them. A pointer returns a path that corresponds to the last
      Node in the sibling Nodes of the node that the pointer points to.

      Here is an example:

      Class A{
      private List list;
      //getter and setter
      :
      }

      Here is a code snippet for creating an object graph that starts from
      instance of A.

      A a1 = new A();
      List list1 = new LinkedList();

      A a11 = new A();
      list1.add(a11);

      A a12 = new A();
      List list12 = new LinkedList();
      A a121 = new A();
      list12.add(a121);
      a12.setList(list12);
      list1.add(a12);

      A a13 = new A();
      list1.add(a11);

      a1.setList(list1);

      And the list attribute can have instances of A as elements in it.

      The JXPathContext correspong to a1 returns pointers when it's iteratePointers
      () method is called. And the pointers correspond to the following nodes.

      A[1]
      A[2]
      A[2]/A[1]
      A[3]

      This is absolutely as expected. However, asPath() method on each of these
      Pointers do not always return the correct path.

      Currently, the asPath() method calls on the corresponding Pointers return this
      output respectively.

      A[3]
      A[3]
      A[2]/A[1]
      A[3]

      This needs to be fixed.

        Issue Links

          Activity

          Krishna Patil created issue -
          Henri Yandell made changes -
          Field Original Value New Value
          issue.field.bugzillaimportkey 33377 12342036
          Henri Yandell made changes -
          Affects Version/s 1.2 Final [ 12311661 ]
          Key COM-1884 JXPATH-5
          Assignee Jakarta Commons Developers Mailing List [ commons-dev@jakarta.apache.org ]
          Component/s JXPath [ 12311120 ]
          Project Commons [ 12310458 ] Commons JXPath [ 12310480 ]
          Henri Yandell made changes -
          Affects Version/s 1.2 Final [ 12311699 ]
          Niall Pemberton made changes -
          Fix Version/s 1.3 [ 12312253 ]
          Niall Pemberton made changes -
          Link This issue is duplicated by JXPATH-71 [ JXPATH-71 ]
          Matt Benson made changes -
          Summary [jxpath] asPath() returns a path to the last sibling asPath() returns a path to the last sibling

            People

            • Assignee:
              Unassigned
              Reporter:
              Krishna Patil
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development