URLs in XML need to be XML Encoded... so try

<a href="http://www.yahoo.com?a=4&amp;b=5";>Test</a>

   ---Mark

On Thu, Jul 30, 2009 at 10:53 AM, Ewan<ehar...@gmail.com> wrote:
>
> Not sure what I have messed up here but if I have a hardcoded link in
> a template page where the href includes query params the lift runtime
> stacktraces.  As an example <a href="http://www.yahoo.com?
> a=4&b=5">Test</a> blows up - see below.  Removing the &b=5 and all is
> well.  The doctype is:
>
> ?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
> www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml";
>        xmlns:lift="http://liftweb.net/";>
>
> Running Liftversion1.1-SNAPSHOT built on Thu Jul 30 18:14:47 BST 2009.
>
> -- Ewan
>
> The stacktrace...
>
> <div style="border: 1px red solid">Error locating template /templates-
> hidden/default.html.<br />  Message:  <br />
>                        <pre>
>                                  java.util.NoSuchElementException
>                                  scala.RandomAccessSeq$$anon$13.next
> (RandomAccessSeq.scala:165)
> scala.xml.parsing.MarkupParser$class.normalizeAttributeValue
> (MarkupParser.scala:1191)
> net.liftweb.util.PCDataXmlParser.normalizeAttributeValue
> (PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.xAttributeValue
> (MarkupParser.scala:334)
> net.liftweb.util.PCDataXmlParser.xAttributeValue
> (PCDataMarkupParser.scala:91)
> net.liftweb.util.PCDataXmlParser.xAttributes(PCDataMarkupParser.scala:
> 106)
> scala.xml.parsing.MarkupParser$class.xTag(MarkupParser.scala:365)
> net.liftweb.util.PCDataXmlParser.xTag(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.element1(MarkupParser.scala:667)
> net.liftweb.util.PCDataXmlParser.element1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content1(MarkupParser.scala:481)
> net.liftweb.util.PCDataXmlParser.content1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content(MarkupParser.scala:505)
> net.liftweb.util.PCDataXmlParser.content(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.element1(MarkupParser.scala:682)
> net.liftweb.util.PCDataXmlParser.element1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content1(MarkupParser.scala:481)
> net.liftweb.util.PCDataXmlParser.content1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content(MarkupParser.scala:505)
> net.liftweb.util.PCDataXmlParser.content(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.element1(MarkupParser.scala:682)
> net.liftweb.util.PCDataXmlParser.element1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content1(MarkupParser.scala:481)
> net.liftweb.util.PCDataXmlParser.content1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content(MarkupParser.scala:505)
> net.liftweb.util.PCDataXmlParser.content(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.element1(MarkupParser.scala:682)
> net.liftweb.util.PCDataXmlParser.element1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content1(MarkupParser.scala:481)
> net.liftweb.util.PCDataXmlParser.content1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content(MarkupParser.scala:505)
> net.liftweb.util.PCDataXmlParser.content(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.element1(MarkupParser.scala:682)
> net.liftweb.util.PCDataXmlParser.element1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content1(MarkupParser.scala:481)
> net.liftweb.util.PCDataXmlParser.content1(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.content(MarkupParser.scala:505)
> net.liftweb.util.PCDataXmlParser.content(PCDataMarkupParser.scala:91)
> scala.xml.parsing.MarkupParser$class.document(MarkupParser.scala:200)
> net.liftweb.util.PCDataXmlParser.document(PCDataMarkupParser.scala:91)
> net.liftweb.util.PCDataXmlParser$$anonfun$apply$2$$anonfun$apply$5$
> $anonfun$apply$6.apply(PCDataMarkupParser.scala:181)
> net.liftweb.util.PCDataXmlParser$$anonfun$apply$2$$anonfun$apply$5$
> $anonfun$apply$6.apply(PCDataMarkupParser.scala:181)
> net.liftweb.util.ControlHelpers$class.tryo(ControlHelpers.scala:40)
> net.liftweb.util.Helpers$.tryo(Helpers.scala:29)
> net.liftweb.util.ControlHelpers$class.tryo(ControlHelpers.scala:55)
> net.liftweb.util.Helpers$.tryo(Helpers.scala:29)
> net.liftweb.util.PCDataXmlParser$$anonfun$apply$2$$anonfun$apply
> $5.apply(PCDataMarkupParser.scala:181)
> net.liftweb.util.PCDataXmlParser$$anonfun$apply$2$$anonfun$apply
> $5.apply(PCDataMarkupParser.scala:179)
> net.liftweb.util.Full.flatMap(Box.scala:332)
> net.liftweb.util.PCDataXmlParser$$anonfun$apply$2.apply
> (PCDataMarkupParser.scala:179)
> net.liftweb.util.PCDataXmlParser$$anonfun$apply$2.apply
> (PCDataMarkupParser.scala:178)
> net.liftweb.util.Full.flatMap(Box.scala:332)
> net.liftweb.util.PCDataXmlParser$.apply(PCDataMarkupParser.scala:178)
> net.liftweb.http.TemplateFinder$.findAnyTemplate(LiftSession.scala:
> 1231)
> net.liftweb.http.LiftSession.findTemplate(LiftSession.scala:727)
> net.liftweb.http.LiftSession.findAndMerge(LiftSession.scala:1098)
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1$$anonfun$apply
> $2.apply(Surround.scala:36)
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1$$anonfun$apply
> $2.apply(Surround.scala:31)
> net.liftweb.util.Full.map(Box.scala:330)
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1.apply
> (Surround.scala:31)
> net.liftweb.builtin.snippet.Surround$$anonfun$render$1.apply
> (Surround.scala:30)
> net.liftweb.util.Full.flatMap(Box.scala:332)
> net.liftweb.builtin.snippet.Surround$.render(Surround.scala:30)
> net.liftweb.builtin.snippet.Surround$$anonfun$dispatch$1$$anonfun$apply
> $1.apply(Surround.scala:26)
> net.liftweb.builtin.snippet.Surround$$anonfun$dispatch$1$$anonfun$apply
> $1.apply(Surround.scala:26)
> net.liftweb.http.LiftSession$$anonfun$17$$anonfun$apply$47$$anonfun
> $apply$50$$anonfun$apply$52.apply(LiftSession.scala:862)
> net.liftweb.http.LiftSession$$anonfun$17$$anonfun$apply$47$$anonfun
> $apply$50$$anonfun$apply$52.apply(LiftSession.scala:849)
> net.liftweb.util.EmptyBox.openOr(Box.scala:372)
> net.liftweb.http.LiftSession$$anonfun$17$$anonfun$apply$47$$anonfun
> $apply$50.apply(LiftSession.scala:849)
> net.liftweb.http.LiftSession$$anonfun$17$$anonfun$apply$47$$anonfun
> $apply$50.apply(LiftSession.scala:849)
> net.liftweb.util.EmptyBox.openOr(Box.scala:372)
> net.liftweb.http.LiftSession$$anonfun$17$$anonfun$apply$47.apply
> (LiftSession.scala:848)
> net.liftweb.http.LiftSession$$anonfun$17$$anonfun$apply$47.apply
> (LiftSession.scala:848)
> net.liftweb.http.S$.doSnippet(S.scala:1542)
> net.liftweb.http.LiftSession$$anonfun$17.apply(LiftSession.scala:846)
> net.liftweb.http.LiftSession$$anonfun$17.apply(LiftSession.scala:845)
> net.liftweb.util.Full.map(Box.scala:330)
> net.liftweb.http.LiftSession.net$liftweb$http$LiftSession$
> $processSnippet(LiftSession.scala:845)
> net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply
> (LiftSession.scala:944)
> net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply
> (LiftSession.scala:932)
> net.liftweb.util.NamedPF.apply(NamedPartialFunction.scala:30)
> net.liftweb.util.NamedPF$.apply(NamedPartialFunction.scala:76)
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$
> $anonfun$apply$58$$anonfun$apply$59.apply(LiftSession.scala:964)
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$
> $anonfun$apply$58$$anonfun$apply$59.apply(LiftSession.scala:964)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$.setVars(S.scala:1384)
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$
> $anonfun$apply$58.apply(LiftSession.scala:963)
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$
> $anonfun$apply$58.apply(LiftSession.scala:963)
> net.liftweb.http.S$.doSnippet(S.scala:1542)
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply
> (LiftSession.scala:962)
> net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply
> (LiftSession.scala:956)
> scala.Seq$class.flatMap(Seq.scala:294)
> scala.xml.NodeSeq.flatMap(NodeSeq.scala:34)
> net.liftweb.http.LiftSession.processSurroundAndInclude
> (LiftSession.scala:955)
> net.liftweb.http.LiftSession$$anonfun$10$$anonfun$apply$34$$anonfun
> $apply$36.apply(LiftSession.scala:573)
> net.liftweb.http.LiftSession$$anonfun$10$$anonfun$apply$34$$anonfun
> $apply$36.apply(LiftSession.scala:573)
> net.liftweb.util.Full.map(Box.scala:330)
> net.liftweb.http.LiftSession$$anonfun$10$$anonfun$apply$34.apply
> (LiftSession.scala:573)
> net.liftweb.http.LiftSession$$anonfun$10$$anonfun$apply$34.apply
> (LiftSession.scala:573)
> net.liftweb.util.EmptyBox.or(Box.scala:374)
> net.liftweb.http.LiftSession$$anonfun$10.apply(LiftSession.scala:570)
> net.liftweb.http.LiftSession$$anonfun$10.apply(LiftSession.scala:563)
> net.liftweb.util.EmptyBox.or(Box.scala:374)
> net.liftweb.http.LiftSession.processRequest(LiftSession.scala:563)
> net.liftweb.http.LiftServlet.net$liftweb$http$LiftServlet$
> $dispatchStatefulRequest(LiftServlet.scala:239)
> net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:155)
> net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:155)
> net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:909)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$
> $anonfun$apply$19.apply(S.scala:1049)
> net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:846)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply
> (S.scala:1047)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$.net$liftweb$http$S$$_nest2InnerInit(S.scala:1046)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
> $apply$22$$anonfun$apply$23$$anonfun$apply$24$$anonfun$apply$25$
> $anonfun$apply$26$$anonfun$apply$27.apply(S.scala:1067)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
> $apply$22$$anonfun$apply$23$$anonfun$apply$24$$anonfun$apply$25$
> $anonfun$apply$26.apply(S.scala:1066)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
> $apply$22$$anonfun$apply$23$$anonfun$apply$24$$anonfun$apply$25.apply
> (S.scala:1065)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
> $apply$22$$anonfun$apply$23$$anonfun$apply$24.apply(S.scala:1064)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
> $apply$22$$anonfun$apply$23.apply(S.scala:1063)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
> $apply$22.apply(S.scala:1062)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply
> (S.scala:1061)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$.net$liftweb$http$S$$_innerInit(S.scala:1060)
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30$$anonfun$apply
> $31$$anonfun$apply$32$$anonfun$apply$33.apply(S.scala:1091)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30$$anonfun$apply
> $31$$anonfun$apply$32.apply(S.scala:1090)
> net.liftweb.http.RequestVarHandler$.apply(Vars.scala:206)
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30$$anonfun$apply
> $31.apply(S.scala:1089)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30.apply(S.scala:
> 1088)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$$anonfun$_init$1.apply(S.scala:1087)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.S$._init(S.scala:1086)
> net.liftweb.http.S$.init(S.scala:780)
> net.liftweb.http.LiftServlet.doService(LiftServlet.scala:154)
> net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:
> 83)
> net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:
> 83)
> net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:241)
> net.liftweb.util.Helpers$.calcTime(Helpers.scala:29)
> net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:250)
> net.liftweb.util.Helpers$.logTime(Helpers.scala:29)
> net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:82)
> net.liftweb.http.LiftServlet.service(LiftServlet.scala:91)
> net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1$$anonfun$apply
> $25.apply(LiftServlet.scala:507)
> net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1$$anonfun$apply
> $25.apply(LiftServlet.scala:507)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.URLRewriter$.doWith(Req.scala:480)
> net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
> (LiftServlet.scala:506)
> net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
> (LiftServlet.scala:500)
> net.liftweb.http.RequestVarHandler$$anonfun$apply$5$$anonfun$apply$6$
> $anonfun$apply$7$$anonfun$apply$8.apply(Vars.scala:212)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.RequestVarHandler$$anonfun$apply$5$$anonfun$apply$6$
> $anonfun$apply$7.apply(Vars.scala:211)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.RequestVarHandler$$anonfun$apply$5$$anonfun$apply
> $6.apply(Vars.scala:210)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.RequestVarHandler$$anonfun$apply$5.apply(Vars.scala:
> 209)
> net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
> net.liftweb.http.RequestVarHandler$.apply(Vars.scala:208)
> net.liftweb.http.LiftFilterTrait$class.doFilter(LiftServlet.scala:499)
> net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:518)
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1148)
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
> 387)
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
> 216)
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
> 181)
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
> 765)
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
> org.mortbay.jetty.handler.ContextHandlerCollection.handle
> (ContextHandlerCollection.java:230)
> org.mortbay.jetty.handler.HandlerCollection.handle
> (HandlerCollection.java:114)
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 152)
> org.mortbay.jetty.Server.handle(Server.java:326)
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 534)
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> (HttpConnection.java:864)
> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> org.mortbay.io.nio.SelectChannelEndPoint.run
> (SelectChannelEndPoint.java:409)
> org.mortbay.thread.QueuedThreadPool$PoolThread.run
> (QueuedThreadPool.java:520)
>                                </pre>
>                        This message is displayed because you are in
> Development mode.
>                              </div>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to