On Thu, Dec 22, 2011 at 13:36, Amila Suriarachchi
<[email protected]> wrote:
> hi,
>
> I am getting some null pointer exceptions for some xpath queries executed on
> Axiom objects. Here is a sample code to reproduce the issue.
>
>  OMFactory omFactory = OMAbstractFactory.getOMFactory();
>         OMElement wrapperElement = omFactory.createOMElement(new
> QName("http://test.com";, "wrapper"));
>
>         PlaceOrder placeOrder = new PlaceOrder();
>         placeOrder.setPrice(23.45);
>         placeOrder.setQuantity(23);
>         placeOrder.setSymbol("IBM");
>         QName elementQName = new QName("http://test.com";, "placeOrder");
>
>         XMLStreamReader xmlStreamReader =
>                 BeanUtil.getPullParser(placeOrder, elementQName, null, true,
> false);
>         StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(new
> StreamWrapper(xmlStreamReader));
>
>         OMElement omElement = stAXOMBuilder.getDocumentElement();
>         wrapperElement.addChild(omElement);
>
>         try {
>             AXIOMXPath axiomxPath = new
> AXIOMXPath("//sn:wrapper/sn:placeOrder");
>             axiomxPath.addNamespace("sn", "http://test.com";);
>
>             OMElement resultOMElement = (OMElement)
> axiomxPath.selectSingleNode(wrapperElement);
>
>             System.out.println("OMElement ==> " + resultOMElement);
>         } catch (JaxenException e) {
>             e.printStackTrace();
>         }
>
> Here the result is null. Even I build the wrapperElement before executing
> the xpath it won't work.
>
> But if I insert the following lines before xpath execution it works fine.
>
> String resultString = wrapperElement.toString();
>             StAXOMBuilder resultOMBuilder = new StAXOMBuilder(new
> ByteArrayInputStream(resultString.getBytes()));
>             wrapperElement = resultOMBuilder.getDocumentElement();
>
> This means xpath and other things should be ok. And also this works fine for
> the xpaths like
>
> //sn:placeOrder/sn:price
>
> what could be the reason?

The fact that in the first case the root of the Axiom tree is an
OMElement, while in the second it is an OMDocument?

> thanks,
> Amila.
>
> --
> Amila Suriarachchi
> WSO2 Inc.
> blog: http://amilachinthaka.blogspot.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to