Re: [Xmltask-users] Exception with nested xmltask with sourcebuffer
Brought to you by:
bagnew
From: Brian A. <br...@oo...> - 2005-06-12 16:00:55
|
I couldn't replicate the below NPE despite using your inputs given below. If you have any further info re. this then please forward. Re. your matching on calls and sub calls, if you have <call path="/root" target="..." buffer="root"/> then your buffer will actually be '/root/...', so to match a subnode you'd have to match '/root/leaf'. In your example below I get "showIgnored" to be called thus: <call path="channel/ignore-wire-types/wire-type" target="showIgnored"> The buffer contains the node including the node matched by 'call', since that node may have additional attributes that you'd want to process. e.g. ids etc. I'll probably enhance the diagnostics surrounding buffers and calls, since it's not entirely clear what's happening. Brian Karr, David wrote: >I just started experimenting with xmltask. I'm getting a NPE when I run >my test. After I turned on "-verbose", I see that my nested xpath >reference isn't matching. My two issues are that it appears as if the >code doesn't deal well with xpath paths that don't match, and obviously, >that my nested path isn't matching. > >The output with stack trace I see (not all of it) is: > >------------ >Executing xmltask 1.10.7 >Processing channel [no output document] >Applying CallAction(showIgnored) to ./ignore-wire-types/wire-type >Applied CallAction(showIgnored) - 0 match(es) >CallAction(showIgnored) (./ignore-wire-types/wire-type) failed to match >java.lang.NullPointerException > at >com.oopsconsultancy.xmltask.XmlReplacement.apply(XmlReplacement.java:65) > at >com.oopsconsultancy.xmltask.ant.XmlTask.processDoc(XmlTask.java:659) > at >com.oopsconsultancy.xmltask.ant.XmlTask.execute(XmlTask.java:628) > at org.apache.tools.ant.Task.perform(Task.java:341) >------------ > >My sample xml file is: > >------------ ><channels> > <client-request-channels> > <channel> > <name>abc</name> > <jndi-name>abc</jndi-name> > <input-wire-format> > <wire-format>abc</wire-format> > </input-wire-format> > <output-wire-format> > <wire-format>abc</wire-format> > </output-wire-format> > <output-queue> > <jndi-name>abc</jndi-name> > </output-queue> > <ignore-wire-types> > <wire-type>abc</wire-type> > <wire-type>def</wire-type> > </ignore-wire-types> > </channel> > </client-request-channels> ></channels> >------------ > >Here's the hopefully relevant excerpt from my build script: >------------ > <target name="cloneejbjar"> > <xmltask source="${channels.xml}"> > <call path="channels/client-request-channels/channel" > target="showChannel" buffer="channel"> > <param name="name" path="./name/text()"/> > <param name="jndi-name" path="./jndi-name/text()"/> > <param name="input-wire-format" >path="./input-wire-format/wire-format/text()"/> > <param name="output-queue" path="./output-queue/jndi-name/text()"/> > <!--<param name="ignore-wire-types" >path="./ignore-wire-types/wire-type/text()"/>--> > </call> > </xmltask> > </target> > > <target name="showChannel"> > <echo message="name[${name}]"/> > <echo message="jndi-name[${jndi-name}]"/> > <echo message="output-queue[${output-queue}]"/> > <echo message="input-wire-format[${input-wire-format}]"/> > <xmltask sourcebuffer="channel"> > <call path="./ignore-wire-types/wire-type" target="showIgnored"> > <param name="name" value="${name}"/> > <param name="jndi-name" value="${jndi-name}"/> > <param name="input-wire-format" value="${input-wire-format}"/> > <param name="output-queue" value="${output-queue}"/> > <param name="wire-type" path="./text()"/> > </call> > </xmltask> > </target> > > <target name="showIgnored"> > </target> >------------ > > >------------------------------------------------------- >This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput >a projector? How fast can you ride your desk chair down the office luge track? >If you want to score the big prize, get to know the little guy. >Play to win an NEC 61" plasma display: http://www.necitguy.com/?r >_______________________________________________ >Xmltask-users mailing list >Xml...@li... >https://lists.sourceforge.net/lists/listinfo/xmltask-users > > > -- Brian Agnew http://www.oopsconsultancy.com OOPS Consultancy Ltd brian @ oopsconsultancy.com Tel: +44 (0)7720 397526 Fax: +44 (0)20 8682 0012 |