This problem finds its roots in a Scala bug. Turns out that: def accessPools(in: NodeSeq): NodeSeq = { for(user <- User.currentUser.toSeq; p <- Privilege.findWritablePools(user.id)) // slow? yield <option value={p}> {AccessPool.find(p).get.getName} </option> }
Calls: def findWritablePools(userId: Long): Set[Long] So, the problem is that the for comprehension is calling map on a Set. This means that the Set is trying to ensure unique elements in the Set, so hashCode is called on each element as it's returned via the yield. It's looking to me like the XML is composed (internally) of a NodeSeq that's built via a mutable buffer, which throws an error when you ask for its hashCode. See http://www.scala-lang.org/docu/files/api/scala/collection/mutable/Buffer.html#hashCode%28%29 So, the fix to the problem is to have findWritablePools return a List[Long]. Thanks, David On Sat, Oct 24, 2009 at 5:23 AM, Xuefeng Wu <ben...@gmail.com> wrote: > I updated source code from SVN and could not open message main page now. > I could not find what's wrong, and I can open other pages. > > Did anyone meet the some and help? > > > The exception is : > Exception occured while processing / > > Message: java.lang.UnsupportedOperationException: unsuitable as hash key > scala.collection.mutable.Buffer$class.hashCode(Buffer.scala:280) > scala.collection.mutable.ArrayBuffer.hashCode(ArrayBuffer.scala:26) > scala.xml.Utility$.hashCode(Utility.scala:263) > scala.xml.Elem.hashCode(Elem.scala:64) > > > scala.collection.mutable.FlatHashTable$class.elemHashCode(FlatHashTable.scala:144) > scala.collection.immutable.HashSet.elemHashCode(HashSet.scala:39) > > > scala.collection.mutable.FlatHashTable$class.containsEntry(FlatHashTable.scala:56) > scala.collection.immutable.HashSet.containsEntry(HashSet.scala:39) > scala.collection.immutable.HashSet.$plus(HashSet.scala:60) > > scala.collection.immutable.Set$$anonfun$$plus$plus$1.apply(Set.scala:73) > > scala.collection.immutable.Set$$anonfun$$plus$plus$1.apply(Set.scala:73) > scala.Iterator$class.foldLeft(Iterator.scala:520) > scala.runtime.BoxedArray$AnyIterator.foldLeft(BoxedArray.scala:45) > scala.Iterable$class.foldLeft(Iterable.scala:321) > scala.runtime.BoxedArray.foldLeft(BoxedArray.scala:24) > scala.Iterable$class.$div$colon(Iterable.scala:338) > scala.runtime.BoxedArray.$div$colon(BoxedArray.scala:24) > scala.collection.immutable.Set$class.$plus$plus(Set.scala:73) > scala.collection.immutable.HashSet.$plus$plus(HashSet.scala:39) > scala.collection.immutable.HashSet$.apply(HashSet.scala:26) > scala.collection.immutable.Set4.$plus(Set4.scala:31) > scala.collection.immutable.Set$$anonfun$map$1.apply(Set.scala:167) > scala.collection.immutable.Set$$anonfun$map$1.apply(Set.scala:167) > scala.Iterator$class.foldLeft(Iterator.scala:520) > > > scala.collection.mutable.ResizableArray$$anon$1.foldLeft(ResizableArray.scala:66) > scala.Iterable$class.foldLeft(Iterable.scala:321) > scala.collection.immutable.HashSet.foldLeft(HashSet.scala:39) > scala.collection.immutable.Set$class.map(Set.scala:167) > scala.collection.immutable.HashSet.map(HashSet.scala:39) > > > org.apache.esme.snippet.UserSnip$$anonfun$accessPools$1.apply(UserSnip.scala:141) > > > org.apache.esme.snippet.UserSnip$$anonfun$accessPools$1.apply(UserSnip.scala:140) > scala.List.flatMap(List.scala:1132) > scala.List.flatMap(List.scala:452) > org.apache.esme.snippet.UserSnip.accessPools(UserSnip.scala:140) > > org.apache.esme.snippet.UserSnip$$anonfun$dispatch$7.apply(UserSnip.scala:94) > > org.apache.esme.snippet.UserSnip$$anonfun$dispatch$7.apply(UserSnip.scala:94) > > > net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$46$$anonfun$apply$49$$anonfun$apply$51.apply(LiftSession.scala:817) > > > net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$46$$anonfun$apply$49$$anonfun$apply$51.apply(LiftSession.scala:801) > net.liftweb.common.EmptyBox.openOr(Box.scala:372) > > > net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$46$$anonfun$apply$49.apply(LiftSession.scala:801) > > > net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$46$$anonfun$apply$49.apply(LiftSession.scala:801) > net.liftweb.common.EmptyBox.openOr(Box.scala:372) > > > net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$46.apply(LiftSession.scala:800) > > > net.liftweb.http.LiftSession$$anonfun$16$$anonfun$apply$46.apply(LiftSession.scala:800) > net.liftweb.http.S$.doSnippet(S.scala:1597) > > net.liftweb.http.LiftSession$$anonfun$16.apply(LiftSession.scala:798) > > net.liftweb.http.LiftSession$$anonfun$16.apply(LiftSession.scala:797) > net.liftweb.common.Full.map(Box.scala:330) > net.liftweb.http.LiftSession.net > $liftweb$http$LiftSession$$processSnippet(LiftSession.scala:797) > > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:913) > > > net.liftweb.http.LiftSession$$anonfun$_defaultLiftTagProcessing$1.apply(LiftSession.scala:901) > net.liftweb.util.NamedPF.apply(NamedPartialFunction.scala:33) > net.liftweb.util.NamedPF$.apply(NamedPartialFunction.scala:79) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62$$anonfun$apply$63.apply(LiftSession.scala:1014) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62$$anonfun$apply$63.apply(LiftSession.scala:1014) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.S$.setVars(S.scala:1425) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62.apply(LiftSession.scala:1013) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62.apply(LiftSession.scala:1013) > net.liftweb.http.S$.withAttrs(S.scala:1444) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61.apply(LiftSession.scala:1012) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61.apply(LiftSession.scala:1012) > net.liftweb.http.S$.doSnippet(S.scala:1597) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60.apply(LiftSession.scala:1011) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60.apply(LiftSession.scala:1011) > net.liftweb.http.LiftSession.net > $liftweb$http$LiftSession$$processOrDefer(LiftSession.scala:996) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1010) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1021) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62$$anonfun$apply$63.apply(LiftSession.scala:1014) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62$$anonfun$apply$63.apply(LiftSession.scala:1014) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.S$.setVars(S.scala:1425) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62.apply(LiftSession.scala:1013) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62.apply(LiftSession.scala:1013) > net.liftweb.http.S$.withAttrs(S.scala:1444) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61.apply(LiftSession.scala:1012) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61.apply(LiftSession.scala:1012) > net.liftweb.http.S$.doSnippet(S.scala:1597) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60.apply(LiftSession.scala:1011) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60.apply(LiftSession.scala:1011) > net.liftweb.http.LiftSession.net > $liftweb$http$LiftSession$$processOrDefer(LiftSession.scala:996) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1010) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62$$anonfun$apply$63.apply(LiftSession.scala:1014) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62$$anonfun$apply$63.apply(LiftSession.scala:1014) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.S$.setVars(S.scala:1425) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62.apply(LiftSession.scala:1013) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61$$anonfun$apply$62.apply(LiftSession.scala:1013) > net.liftweb.http.S$.withAttrs(S.scala:1444) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61.apply(LiftSession.scala:1012) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60$$anonfun$apply$61.apply(LiftSession.scala:1012) > net.liftweb.http.S$.doSnippet(S.scala:1597) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60.apply(LiftSession.scala:1011) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1$$anonfun$apply$60.apply(LiftSession.scala:1011) > net.liftweb.http.LiftSession.net > $liftweb$http$LiftSession$$processOrDefer(LiftSession.scala:996) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1010) > > > net.liftweb.http.LiftSession$$anonfun$processSurroundAndInclude$1.apply(LiftSession.scala:1004) > scala.Seq$class.flatMap(Seq.scala:294) > scala.xml.NodeSeq.flatMap(NodeSeq.scala:34) > > > net.liftweb.http.LiftSession.processSurroundAndInclude(LiftSession.scala:1003) > > > net.liftweb.http.LiftSession$$anonfun$8$$anonfun$apply$29$$anonfun$apply$32$$anonfun$apply$34.apply(LiftSession.scala:510) > > > net.liftweb.http.LiftSession$$anonfun$8$$anonfun$apply$29$$anonfun$apply$32$$anonfun$apply$34.apply(LiftSession.scala:510) > net.liftweb.common.Full.map(Box.scala:330) > > > net.liftweb.http.LiftSession$$anonfun$8$$anonfun$apply$29$$anonfun$apply$32.apply(LiftSession.scala:510) > > > net.liftweb.http.LiftSession$$anonfun$8$$anonfun$apply$29$$anonfun$apply$32.apply(LiftSession.scala:510) > net.liftweb.common.EmptyBox.or(Box.scala:374) > > > net.liftweb.http.LiftSession$$anonfun$8$$anonfun$apply$29.apply(LiftSession.scala:507) > > > net.liftweb.http.LiftSession$$anonfun$8$$anonfun$apply$29.apply(LiftSession.scala:507) > net.liftweb.util.StackableMaker$class.doWith(Maker.scala:102) > net.liftweb.http.Factory$FactoryMaker.doWith(Factory.scala:36) > net.liftweb.util.StackableMaker$class.doWith(Maker.scala:96) > net.liftweb.http.Factory$FactoryMaker.doWith(Factory.scala:36) > net.liftweb.http.LiftSession$$anonfun$8.apply(LiftSession.scala:505) > net.liftweb.http.LiftSession$$anonfun$8.apply(LiftSession.scala:500) > net.liftweb.common.EmptyBox.or(Box.scala:374) > net.liftweb.http.LiftSession.processRequest(LiftSession.scala:500) > net.liftweb.http.LiftServlet.net > $liftweb$http$LiftServlet$$dispatchStatefulRequest(LiftServlet.scala:254) > net.liftweb.http.LiftServlet$$anonfun$3.apply(LiftServlet.scala:171) > net.liftweb.http.LiftServlet$$anonfun$3.apply(LiftServlet.scala:171) > net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:915) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$20.apply(S.scala:1055) > net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:852) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$doAround$1.apply(S.scala:853) > > > net.liftweb.mapper.MetaProtoExtendedSession$myWrapper$.apply(ProtoExtendedSession.scala:73) > net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:853) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply(S.scala:1053) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > net.liftweb.http.S$.net$liftweb$http$S$$_nest2InnerInit(S.scala:1052) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$23$$anonfun$apply$24$$anonfun$apply$25$$anonfun$apply$26$$anonfun$apply$27.apply(S.scala:1072) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$23$$anonfun$apply$24$$anonfun$apply$25$$anonfun$apply$26.apply(S.scala:1071) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$23$$anonfun$apply$24$$anonfun$apply$25.apply(S.scala:1070) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$23$$anonfun$apply$24.apply(S.scala:1069) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$23.apply(S.scala:1068) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply(S.scala:1067) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.S$.net$liftweb$http$S$$_innerInit(S.scala:1066) > > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30$$anonfun$apply$31$$anonfun$apply$32$$anonfun$apply$33.apply(S.scala:1095) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30$$anonfun$apply$31$$anonfun$apply$32.apply(S.scala:1094) > net.liftweb.http.RequestVarHandler$.apply(Vars.scala:150) > > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30$$anonfun$apply$31.apply(S.scala:1093) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$30.apply(S.scala:1092) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.S$$anonfun$_init$1.apply(S.scala:1091) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.S$._init(S.scala:1090) > net.liftweb.http.S$.init(S.scala:786) > net.liftweb.http.LiftServlet.doService(LiftServlet.scala:170) > > net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:74) > > net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:74) > net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:242) > net.liftweb.util.Helpers$.calcTime(Helpers.scala:30) > net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:251) > net.liftweb.util.Helpers$.logTime(Helpers.scala:30) > net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:73) > net.liftweb.http.LiftServlet.service(LiftServlet.scala:78) > > > net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply(HTTPProvider.scala:55) > > > net.liftweb.http.provider.HTTPProvider$$anonfun$service$3.apply(HTTPProvider.scala:55) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.URLRewriter$.doWith(Req.scala:473) > > net.liftweb.http.provider.HTTPProvider$class.service(HTTPProvider.scala:54) > net.liftweb.http.LiftFilter.service(LiftServlet.scala:517) > > > net.liftweb.http.provider.servlet.ServletFilterProvider$class.protected$service(ServletFilterProvider.scala:42) > net.liftweb.http.LiftFilter.protected$service(LiftServlet.scala:517) > > > net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:42) > > > net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:37) > > > net.liftweb.http.RequestVarHandler$$anonfun$apply$10$$anonfun$apply$11$$anonfun$apply$12$$anonfun$apply$13.apply(Vars.scala:156) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.RequestVarHandler$$anonfun$apply$10$$anonfun$apply$11$$anonfun$apply$12.apply(Vars.scala:155) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > > net.liftweb.http.RequestVarHandler$$anonfun$apply$10$$anonfun$apply$11.apply(Vars.scala:154) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > > net.liftweb.http.RequestVarHandler$$anonfun$apply$10.apply(Vars.scala:153) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:67) > net.liftweb.http.RequestVarHandler$.apply(Vars.scala:152) > > > net.liftweb.http.provider.servlet.ServletFilterProvider$class.doFilter(ServletFilterProvider.scala:36) > net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:517) > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > > > 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:536) > > > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:915) > org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > > > -- > Scala中文社区: http://groups.google.com/group/scalacn > -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics