Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6941869

XSL : Xalan transformer fails to process semicolumn symbol in a count() function correctly

    Details

    • Subcomponent:
    • Resolved In Build:
      b09
    • CPU:
      generic
    • OS:
      generic
    • Verification:
      Verified

      Backports

        Description

        We have problems with XSL transformations using the so-called Muenchian Method(by Steve Muench) for grouping nodes of an XML document (see also < http://www.jenitennison.com/xslt/grouping/muenchian.html> ). The Xalan transformer contained in the JDK 5 & 6 does not compile or evaluate the following union (= "|" symbol) expression in a count() function correctly - it always evaluates to 1 instead of the real number of nodes in the union set:

         
                count(.|key('props', d/e)[1])

        The problem is observed from JDK 5 update 12 onwards, including 6th and 7th trains.

        More detailed explanation:
        Xalan 2.6 contained in the Sun JDK 1.5 u12 and newer has issues with evaluating grouping nodes according the Muenchian Method, where nodes are stored in a key data structure for the group key, and later a group start is checked by checking for the first node retrieved for a key.
        The nodes are compared using a set union, where the size of the set should be 1 when the nodes are identical, and different to 1 when the nodes are different.
        The issue with Xalan 2.6 as part of the JDK is, that it does not evaluate the expression "count(.|key('props', subexpr)[1])" correctly. It always returns "1". If the argument expression of count() is stored in a variable first, and the variable is used as argument for count(), then everything works fine.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  mbankal Mala Bankal (Inactive)
                  Reporter:
                  ikrylov Ivan Krylov
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: