ConfD User Community

Maapi.queryStart() cannot handle non-ASCII xpath?


#1

A call to Maapi.queryStart() throws an Exception when given an xpath containing path elements with non-ASCII characters in the “context” argument, which is the base xpath at which the query is supposed to begin. Is this expected?

Jun 29 18:21:49 127.0.0.1 at com.tailf.conf.ConfException.mk(ConfException.java:123)
Jun 29 18:21:49 127.0.0.1 at com.tailf.conf.ConfException.mk(ConfException.java:67)
Jun 29 18:21:49 127.0.0.1 at com.tailf.maapi.Maapi.queryStart(Maapi.java:9215)

The non-ASCII character in question is: “§”


#2

Did you try to use Unicode or HTML escape code if it helps?

§ = \u00A7 (unicode) = § (HTML)


#3

Thank you for the suggestion. I did not try it with escaped characters. That would probably work. However, our data is already in place using Unicode code points in our xpaths and we need this new code to be backward compatible.

I did open a bug with TAC and Tail-f has responded that they acknowledge the bug in Maapi.queryStart().

In the meantime, I think I have found a workaround by using Maapi.newCursor() and Maapi.getNext() to iterate over xpaths with Unicode code points and putting them in a TreeMap to sort them. (I had previously relied on the sorting capability provided by Maapi.queryStart).