lift-json serialization

95 views
Skip to first unread message

Dirk

unread,
Mar 17, 2011, 3:58:52 PM3/17/11
to lif...@googlegroups.com
Sorry if this is a dumb question.. why does lift-json only serialize constructor parameters, instead of all fields in a class?

Joni Freeman

unread,
Mar 17, 2011, 4:11:08 PM3/17/11
to lif...@googlegroups.com
On Thu, 2011-03-17 at 16:58 -0300, Dirk wrote:
> Sorry if this is a dumb question.. why does lift-json only serialize
> constructor parameters, instead of all fields in a class?

The current reflection based serialization is built for
algebraic data types, like this kind of product types:

case class Address(street: String, city: String)

Sum types are supported too but they require type hints to be added to
the resulting JSON:

sealed trait Animal
case class Dog(name: String) extends Animal
case class Cat(name: String) extends Animal

So, the current reflection code works on case class constructor
parameters, not on properties.

That said, there's an open ticket to expand the
serialization/deserialization support:

http://www.assembla.com/spaces/liftweb/tickets/893-improve-class----json-serialization

I've got some plans how to do it but no concrete implementation yet.

Cheers Joni

Dirk McCormick

unread,
Mar 17, 2011, 4:46:52 PM3/17/11
to lif...@googlegroups.com
I've got some plans how to do it but no concrete implementation yet.

What about using gson or a similar library?

Andreas Joseph Krogh

unread,
Mar 17, 2011, 4:50:23 PM3/17/11
to lif...@googlegroups.com
On 03/17/2011 09:46 PM, Dirk McCormick wrote:
>>
>> I've got some plans how to do it but no concrete implementation yet.
>>
>
> What about using gson or a similar library?

Please consider a solution which doesn't have the limitation GSON has;
Not being able to serialize object-graphs with circular references.

--
Andreas Joseph Krogh <and...@officenet.no>
Senior Software Developer / CTO
Public key: http://home.officenet.no/~andreak/public_key.asc
------------------------+---------------------------------------------+
OfficeNet AS | The most difficult thing in the world is to |
Rosenholmveien 25 | know how to do a thing and to watch |
1414 Troll�sen | somebody else doing it wrong, without |
NORWAY | comment. |
Org.nr: NO 981 479 076 | |
| |
Tlf: +47 24 15 38 90 | |
Fax: +47 24 15 38 91 | |
Mobile: +47 909 56 963 | |
------------------------+---------------------------------------------+

Dirk McCormick

unread,
Mar 18, 2011, 8:57:11 AM3/18/11
to lif...@googlegroups.com
I've got some plans how to do it but no concrete implementation yet.

Could you elaborate on those plans, perhaps I can help out
 

Joni Freeman

unread,
Mar 20, 2011, 4:12:30 AM3/20/11
to lif...@googlegroups.com
Hi,

The plan is to add a new serializer: FieldSerializer. To enable
serialization of fields you can add a FieldSerializer for some type:

implicit val formats = DefaultFormats + FieldSerializer[WildDog]()

Now the type WildDog gets serialized with all its fields (+ constructor
parameters). FieldSerializer takes two optional parameters which can be
used to intercept the field serialization:

case class FieldSerializer[A: Manifest](
serializer:
PartialFunction[(String, Any), Option[(String, Any)]] = Map(),
deserializer:
PartialFunction[JField, JField] = Map()
)

Those PartialFunctions are called just before a field is serialized or
deserialized. We can provide some useful PFs for renaming or ignoring
fields:

val dogSerializer = FieldSerializer[WildDog](
renameTo("name", "animalname") orElse ignore("owner"),
renameFrom("animalname", "name")
)

implicit val formats = DefaultFormats + dogSerializer

I actually implemented a first cut of this idea. So, one way to help is
to try that and report bugs/improvement ideas etc. This feature lives
currently in 'joni_893' branch:

https://github.com/lift/framework/tree/joni_893

An example:

https://github.com/lift/framework/blob/joni_893/core/json/src/test/scala/net/liftweb/json/FieldSerializerExamples.scala

Cheers Joni

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


Dirk

unread,
Mar 21, 2011, 10:02:34 AM3/21/11
to lif...@googlegroups.com
These are cool ideas, and especially easy to use from a library user's perspective. Scala really makes the world a much better place :)
What do you think about the idea of adding something to Formats so that the library user can say she wants all fields serialized by default for any type, instead of needing to do so for each individual type?

To unsubscribe from this group, send email to liftweb+u...@googlegroups.com.

Joni Freeman

unread,
Mar 21, 2011, 1:02:47 PM3/21/11
to lif...@googlegroups.com
On Mon, 2011-03-21 at 11:02 -0300, Dirk wrote:
> These are cool ideas, and especially easy to use from a library user's
> perspective. Scala really makes the world a much better place :)
> What do you think about the idea of adding something to Formats so
> that the library user can say she wants all fields serialized by
> default for any type, instead of needing to do so for each individual
> type?

I just pushed a change which improves the search of FieldSerializers. It
examines the whole class hierarchy now and selects the best matching
serializer for a type (if any). So, to enable field serialization for
all types you can just say:

implicit val formats = DefaultFormats + FieldSerializer[AnyRef]()

Cheers Joni


Joni Freeman

unread,
Mar 22, 2011, 3:16:38 AM3/22/11
to lif...@googlegroups.com
Hi,

This feature is in trunk too now.

Cheers Joni

Dirk

unread,
Mar 24, 2011, 12:10:58 PM3/24/11
to lif...@googlegroups.com
Awesome! I'm in New York this week but if I don't get a chance this week I'll check it next week when I get home.
Thanks again for the help!



--

Dirk

unread,
Apr 12, 2011, 2:47:20 PM4/12/11
to lif...@googlegroups.com
I've finally got back to continuing to integrate Play with lift-json. Play's model objects all extend a class that uses a java.lang.concurrent.AtomicInteger. It seems that when lift-json attempts to serialize this object there's some kind of loop that causes a stack overflow:

implicit val formats = DefaultFormats + FieldSerializer[AnyRef]()
println(write(new AtomicInteger(4)))

Note that if formats is just DefaultFormats (without the FieldSerializer) there doesn't seem to be a problem.

This is the stack trace:
java.lang.StackOverflowError
    at scala.collection.immutable.Map$EmptyMap$.get(Map.scala:75)
    at scala.collection.MapLike$class.contains(MapLike.scala:143)
    at scala.collection.immutable.Map$EmptyMap$.contains(Map.scala:73)
    at scala.collection.MapLike$class.isDefinedAt(MapLike.scala:155)
    at scala.collection.immutable.Map$EmptyMap$.isDefinedAt(Map.scala:73)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:70)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(Extraction.scala:92)
    at scala.Option.map(Option.scala:129)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:92)
    at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1.apply(Extraction.scala:88)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:88)
    at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:87)

Joni Freeman

unread,
Apr 12, 2011, 3:59:02 PM4/12/11
to lif...@googlegroups.com
Hi,

Found a bug which causes that, FieldSerializer tried to serialize static
fields too. That's easy to fix but met another problem related to
AtomicInteger. AtomicInteger has two constructors:

- AtomicInteger()
- AtomicInteger(int initialValue)

Now FieldSerializer picks the second constructor and fails because
there's no such field as 'initialValue'. Somehow it should be clever and
select the no-arg constructor. I need to rethink this a bit more I'm
afraid... Perhaps FieldSerializer should always use no-arg constructor
instead of constructors with arguments.

Cheers Joni

> +unsub...@googlegroups.com.


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

> +unsub...@googlegroups.com.

Joni Freeman

unread,
Apr 13, 2011, 1:52:01 PM4/13/11
to lif...@googlegroups.com
Hi,

There's a fix for this issue in master now.

Cheers Joni

On Tue, 2011-04-12 at 14:47 -0400, Dirk wrote:

> I've finally got back to continuing to integrate Play with lift-json.
> Play's model objects all extend a class that uses a
> java.lang.concurrent.AtomicInteger. It seems that when lift-json
> attempts to serialize this object there's some kind of loop that
> causes a stack overflow:
> implicit val formats = DefaultFormats + FieldSerializer[AnyRef]()
> println(write(new AtomicInteger(4)))
>
> Note that if formats is just DefaultFormats (without the
> FieldSerializer) there doesn't seem to be a problem.
>
> This is the stack trace:
> java.lang.StackOverflowError
> at scala.collection.immutable.Map$EmptyMap$.get(Map.scala:75)
> at scala.collection.MapLike$class.contains(MapLike.scala:143)
> at scala.collection.immutable.Map$EmptyMap$.contains(Map.scala:73)
> at scala.collection.MapLike$class.isDefinedAt(MapLike.scala:155)
> at scala.collection.immutable.Map$EmptyMap
> $.isDefinedAt(Map.scala:73)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:70)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> $1.apply(Extraction.scala:87)
> at scala.Option.map(Option.scala:129)
> at net.liftweb.json.Extraction$.decompose(Extraction.scala:87)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1
> $$anonfun$apply$2.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply$1

> $$anonfun$apply$2.apply(Extraction.scala:92)
> at scala.Option.map(Option.scala:129)

> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:92)
> at net.liftweb.json.Extraction$$anonfun$1$$anonfun$apply
> $1.apply(Extraction.scala:88)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map
> $1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized

> $class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike
> $class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)

> at net.liftweb.json.Extraction$$anonfun
> $1.apply(Extraction.scala:88)
> at net.liftweb.json.Extraction$$anonfun

> +unsub...@googlegroups.com.


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

> +unsub...@googlegroups.com.

Dirk

unread,
Apr 14, 2011, 10:07:34 AM4/14/11
to lif...@googlegroups.com
Great, thank you! I have one last suggestion: I don't think it makes much sense to serialize transient fields. What do you think?

To unsubscribe from this group, send email to liftweb+u...@googlegroups.com.

Joni Freeman

unread,
Apr 14, 2011, 11:14:11 AM4/14/11
to lif...@googlegroups.com
On Thu, 2011-04-14 at 11:07 -0300, Dirk wrote:
> Great, thank you! I have one last suggestion: I don't think it makes
> much sense to serialize transient fields. What do you think?

Totally agreed, will make that fix too.

Cheers Joni

Reply all
Reply to author
Forward
0 new messages