These exceptions are due to malformed XML. <lift:MySnippet eager_eval="true"> <lift:embed what="templateB"> </lift:MySnippet>
Should be <lift:MySnippet eager_eval="true"> <lift:embed what="templateB"*/*> </lift:MySnippet> and <div class="foobar"> ... <lift:embed what="templateC"> ... </div> Should be: <div class="foobar"> ... <lift:embed what="templateC"/> ... </div> Note the '/' that close the tag. Kris Nuttycombe wrote: > Okay, I have encountered one problem with eager_eval: recursive embed > evaluation. > > If I have templateA.html: > > <lift:MySnippet eager_eval="true"> > <lift:embed what="templateB"> > </lift:MySnippet> > > and templateB.html: > > <div class="foobar"> > ... > <lift:embed what="templateC"> > ... > </div> > > then I get a somewhat opaque error from deep inside Scala's XML stack: > > Exception occured while processing /orders/list > > Message: java.lang.IllegalArgumentException: line 32 does not exist > scala.io.Source.getLine(Source.scala:280) > scala.io.Source.report(Source.scala:368) > scala.io.Source.reportError(Source.scala:355) > scala.io.Source.reportError(Source.scala:344) > > scala.xml.parsing.MarkupParser$class.reportSyntaxError(MarkupParser.scala:1113) > > net.liftweb.util.PCDataXmlParser.reportSyntaxError(PCDataMarkupParser.scala:77) > > scala.xml.parsing.MarkupParser$class.reportSyntaxError(MarkupParser.scala:1117) > > net.liftweb.util.PCDataXmlParser.reportSyntaxError(PCDataMarkupParser.scala:77) > scala.xml.parsing.MarkupParser$class.document(MarkupParser.scala:226) > net.liftweb.util.PCDataXmlParser.document(PCDataMarkupParser.scala:77) > net.liftweb.util.PCDataXmlParser$.apply(PCDataMarkupParser.scala:88) > > net.liftweb.http.TemplateFinder$$anonfun$findAnyTemplate$1$$anonfun$apply$49.apply(LiftSession.scala:896) > > net.liftweb.http.TemplateFinder$$anonfun$findAnyTemplate$1$$anonfun$apply$49.apply(LiftSession.scala:896) > net.liftweb.util.Full.flatMap(Can.scala:266) > > net.liftweb.http.TemplateFinder$$anonfun$findAnyTemplate$1.apply(LiftSession.scala:896) > > net.liftweb.http.TemplateFinder$$anonfun$findAnyTemplate$1.apply(LiftSession.scala:896) > scala.Function1$$anonfun$andThen$1.apply(Function1.scala:48) > scala.Stream$class.flatMap(Stream.scala:430) > scala.List$$anon$1.flatMap(List.scala:1307) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$class.append(Stream.scala:255) > scala.List$$anon$1.append(List.scala:1307) > scala.Stream$class.flatMap(Stream.scala:435) > scala.List$$anon$1.flatMap(List.scala:1307) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$class.append(Stream.scala:255) > scala.List$$anon$1.append(List.scala:1307) > scala.Stream$class.flatMap(Stream.scala:435) > scala.List$$anon$1.flatMap(List.scala:1307) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$class.append(Stream.scala:255) > scala.List$$anon$1.append(List.scala:1307) > scala.Stream$class.flatMap(Stream.scala:435) > scala.List$$anon$1.flatMap(List.scala:1307) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$class.append(Stream.scala:255) > scala.List$$anon$1.append(List.scala:1307) > scala.Stream$class.flatMap(Stream.scala:435) > scala.List$$anon$1.flatMap(List.scala:1307) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$$anonfun$flatMap$1.apply(Stream.scala:435) > scala.Stream$class.append(Stream.scala:255) > scala.List$$anon$1.append(List.scala:1307) > scala.Stream$class.flatMap(Stream.scala:435) > scala.List$$anon$1.flatMap(List.scala:1307) > scala.List$$anon$1.flatMap(List.scala:1307) > net.liftweb.util.ListHelpers$class.first(ListHelpers.scala:35) > net.liftweb.util.Helpers$.first(Helpers.scala:26) > net.liftweb.http.TemplateFinder$.findAnyTemplate(LiftSession.scala:896) > net.liftweb.http.LiftSession.findTemplate(LiftSession.scala:506) > > net.liftweb.http.LiftSession.net$liftweb$http$LiftSession$$findAndEmbed(LiftSession.scala:520) > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:652) > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:645) > scala.PartialFunction$$anon$1.apply(PartialFunction.scala:38) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$35.apply(LiftSession.scala:669) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$35.apply(LiftSession.scala:669) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$.setVars(S.scala:518) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:669) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:666) > scala.Seq$class.flatMap(Seq.scala:267) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:665) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:670) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:666) > scala.Seq$class.flatMap(Seq.scala:267) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:665) > > net.liftweb.http.LiftSession.net$liftweb$http$LiftSession$$processSnippet(LiftSession.scala:573) > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:659) > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:645) > scala.PartialFunction$$anon$1.apply(PartialFunction.scala:38) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$35.apply(LiftSession.scala:669) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$35.apply(LiftSession.scala:669) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$.setVars(S.scala:518) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:669) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:666) > scala.Seq$class.flatMap(Seq.scala:267) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:665) > > net.liftweb.http.LiftSession.net$liftweb$http$LiftSession$$processSurroundElement(LiftSession.scala:804) > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:651) > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:645) > scala.PartialFunction$$anon$1.apply(PartialFunction.scala:38) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$35.apply(LiftSession.scala:669) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$35.apply(LiftSession.scala:669) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$.setVars(S.scala:518) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:669) > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:666) > scala.Seq$class.flatMap(Seq.scala:267) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:665) > net.liftweb.http.LiftSession$$anonfun$8.apply(LiftSession.scala:343) > net.liftweb.http.LiftSession$$anonfun$8.apply(LiftSession.scala:343) > net.liftweb.util.Full.map(Can.scala:264) > net.liftweb.http.LiftSession.processRequest(LiftSession.scala:343) > > net.liftweb.http.LiftServlet.net$liftweb$http$LiftServlet$$dispatchStatefulRequest(LiftServlet.scala:219) > net.liftweb.http.LiftServlet$$anonfun$1.apply(LiftServlet.scala:161) > net.liftweb.http.LiftServlet$$anonfun$1.apply(LiftServlet.scala:161) > net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:379) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$18.apply(S.scala:419) > net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:359) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply(S.scala:417) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$.net$liftweb$http$S$$_nest2InnerInit(S.scala:416) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$21$$anonfun$apply$22$$anonfun$apply$23$$anonfun$apply$24$$anonfun$apply$25.apply(S.scala:436) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$21$$anonfun$apply$22$$anonfun$apply$23$$anonfun$apply$24.apply(S.scala:435) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$21$$anonfun$apply$22$$anonfun$apply$23.apply(S.scala:434) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$21$$anonfun$apply$22.apply(S.scala:433) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$21.apply(S.scala:432) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply(S.scala:431) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$.net$liftweb$http$S$$_innerInit(S.scala:430) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$28$$anonfun$apply$29$$anonfun$apply$30$$anonfun$apply$31.apply(S.scala:459) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$28$$anonfun$apply$29$$anonfun$apply$30.apply(S.scala:458) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$28$$anonfun$apply$29.apply(S.scala:457) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$28.apply(S.scala:456) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$$anonfun$_init$1.apply(S.scala:455) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.S$._init(S.scala:454) > net.liftweb.http.S$.init(S.scala:322) > net.liftweb.http.LiftServlet.doService(LiftServlet.scala:160) > > net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:105) > > net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:105) > net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:227) > net.liftweb.util.Helpers$.calcTime(Helpers.scala:26) > net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:236) > net.liftweb.util.Helpers$.logTime(Helpers.scala:26) > net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:104) > net.liftweb.http.LiftServlet.service(LiftServlet.scala:109) > > net.liftweb.http.LiftFilter$$anonfun$doFilter$3.apply(LiftServlet.scala:476) > > net.liftweb.http.LiftFilter$$anonfun$doFilter$3.apply(LiftServlet.scala:476) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:24) > net.liftweb.http.URLRewriter$.doWith(RequestState.scala:341) > net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:475) > > On Thu, Sep 11, 2008 at 4:10 PM, David Pollak <[EMAIL PROTECTED]> wrote: > >> <lift:MySnippet eager_eval="true"> >> <lift:embed...> >> </lift:MySnippet> >> >> will do the right thing (give Hudson about 2 hours to get the code into the >> Lift Maven respository). >> >> Kris Nuttycombe wrote: >> >> On Thu, Sep 11, 2008 at 3:49 PM, David Pollak <[EMAIL PROTECTED]> wrote: >> >> >> If you are trying to embed a <lift:embed .../> in the body of a snippet... >> e.g.: >> >> <lift:MySnippet> >> <lift:embed .../> >> </lift:MySnippet> >> >> >> That is indeed essentially what I was trying to do; in the application >> I'm building I have a number of snippets that will contain common >> chunks of HTML (with tags that I want to bind to), and am simply >> trying to figure out what the standard way reusing those chunks in the >> various snippets would be. >> >> Thanks, >> >> Kris >> >> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---