Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-12081

XQuery NPE going from saxon 9.5 to 9.7 (upgraded camel from2.17.4-> 2.20.1)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Implemented
    • 2.20.1
    • 2.21.0
    • camel-saxon
    • None
    • JDK 1.8.0_144. Windows 10 and Centos 7

    • Unknown

    Description

      Hi guys

      I think saxon went to 9.7 in camel 2.18 (could be 19). Anyway, I used the latest to illustrate my problem (2.20.1 at the time of writing)

      I have a routes that receive XML payloads which I then transform via xqueries. Inside these I use local functions for readability (read: it's the first thing I tried when solving my problem and it worked).

      Since saxon went to 9.7 I get a null pointer exception when an xquery containing a local function tries to process the XML.

      To demonstrate this, I have made a GitHub project:
      https://github.com/rannandale/xqueryIssue

      In the project I use two xqueries to transform the same source.

      • One uses an inline for loop:
        <o>
        <variables> {for $v in /root/Data return $v/Name}

        </variables>
        </o>

      • One uses the local function style:
        declare function local:loopMe($nodes)
        {
        for $node in $nodes
        return
        <variables>{$node/*:Name}</variables>
        };

      <o>

      {local:loopMe(/root/Data)}

      </o>

      The latter is the one that returns the NPE.

      I know I could probably go refactor all my xqueries to match the inline style, but I figured I'd see if there is an issue here other than PEBKAC. They also get quite complex, so it's quite a bit of work.

      Thanks guys
      Riaan

      Attachments

        Activity

          People

            dmvolod Dmitry Volodin
            rannandale Riaan Annandale
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: