I've tried to track this down with the Eclipse debugger attached to the Tomcat 
degug port, 
but I'm stuck  because I can't find the source for 
org.xmldb.xupdate.lexus.XUpdateQueryImpl. 
Where are the sources for the org.xmldb.xupdate.lexus.* packages which Xindice 
extends?

The issue appears to be that my default namespace, "lett.com/example" is stored 
in the "namespaces"
HashMap within org.xmldb.xupdate.lexus.XUpdateQueryImpl with a *null* prefix 
key instead of a 
zero-length string (""). The debugger shows the contents of "namespaces" as:

{null=lett.com/example, urn=urn:ietf:params:xml:ns:netconf:base:1.0, 
xu=http://www.xmldb.org/xupdate}

org.apache.xindice.xml.NamespaceMap.getContextNode() throws a NPE at line 63 
because pfx is null:
                if (pfx.equals("")) {...}

I can't see how the "namespaces" hashmap is constructed without the source.

        - Andy

On Thu, 25 Dec 2008 12:38:43 -0600  Andy Putnins wrote:
 > I am trying to execute an XUpdate transaction against a document, 
 > and getting a null pointer exception. Any ideas what the problem
 > might be?
 > 
 > Document in DB:
 > 
 > <?xml version="1.0" encoding="utf-8"?>
 > <root xmlns="http://lett.com/ns/netconf/server/1.0";><top 
 > xmlns="lett.com/example" /></
     root>
 > 
 > Xindice log:
 > 
 > INFO: [http-8888-1] '/db/netconf' Query document candidate, query: <?xml 
 > version
 > ="1.0" encoding="UTF-8"?>
 > <xu:modifications xmlns:xu="http://www.xmldb.org/xupdate"; version="1.0">
 > 
 >     <xu:insert-after select="/top">
 >         <interface xmlns="lett.com/example" 
 > xmlns:urn="urn:ietf:params:xml:ns:ne
 > tconf:base:1.0">
 >           <name>Ethernet0/0</name>
 >           <mtu>1500</mtu>
 >         </interface>
 >     </xu:insert-after>
 > 
 > </xu:modifications>
 > Dec 25, 2008 12:08:50 PM 
 > org.apache.xindice.core.xupdate.XUpdateQueryResolver$XU
 > pdateQuery execute
 > WARNING: ignored exception
 > java.lang.NullPointerException
 >      at org.apache.xindice.xml.NamespaceMap.getContextNode(NamespaceMap.java:
 > 63)
 >      at org.apache.xindice.core.xupdate.XUpdateImpl.execute(XUpdateImpl.java:
 > 99)
 >      at org.apache.xindice.core.xupdate.XUpdateQueryResolver$XUpdateQuery.exe
 > cute(XUpdateQueryResolver.java:141)
 >      at org.apache.xindice.core.xupdate.XUpdateQueryResolver.query(XUpdateQue
 > ryResolver.java:83)
 >      at org.apache.xindice.core.query.QueryEngine.query(QueryEngine.java:126)
 >      at org.apache.xindice.core.Collection.queryDocument(Collection.java:1291
 > )
 >      at org.apache.xindice.server.rpc.messages.Query.execute(Query.java:58)
 >      at org.apache.xindice.server.rpc.RPCMessageInterface.run(RPCMessageInter
 > face.java:49)
 >      at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
 >      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
 > sorImpl.java:25)
 >      at java.lang.reflect.Method.invoke(Method.java:597)
 >      at org.apache.xmlrpc.Invoker.execute(XmlRpcServer.java)
 >      at org.apache.xmlrpc.XmlRpcServer$Worker.executeInternal(XmlRpcServer.ja
 > va)
 >      at org.apache.xmlrpc.XmlRpcServer$Worker.execute(XmlRpcServer.java)
 >      at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java)
 >      at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java)
 >      at org.apache.xindice.server.XindiceServlet.doPost(XindiceServlet.java:9
 > 2)
 >      at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 >      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 >      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
 > icationFilterChain.java:290)
 >      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
 > ilterChain.java:206)
 >      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
 > alve.java:233)
 >      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
 > alve.java:191)
 >      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
 > ava:128)
 >      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
 > ava:102)
 >      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
 > ve.java:109)
 >      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
 > a:286)
 >      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
 > :845)
 >      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
 > ss(Http11Protocol.java:583)
 >      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
 > 7)
 >      at java.lang.Thread.run(Thread.java:619)
 > 
 > 
 >      - Andy
 > 

        - Andy
________________________________________________________________
Andris Putnins, Principal
Lett Engineering                phone:  (847) 997-0002
300 Bramble Lane                fax:    (847) 550-0633
Deer Park, IL 60011             email:  putn...@lett.com

Reply via email to