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 -~----------~----~----~----~------~----~------~--~---