sonofjson
sonofjson copied to clipboard
`log.debug(json)` fails with `scala.MatchError` (when I do not use explicit json.toString())
This code:
import nl.typeset.sonofjson
import nl.typeset.sonofjson._
...
val s: String = x.payload.decodeString("UTF-8")
log.debug(s)
val json = parse(s)
log.debug(json.toString)
log.debug(json) // <== This fails with scala.MatchError
generates the output below with the scala.MatchError.
I am not sure if that is expected, or I should be able to simply use the json as an argument for log.debug (without the explicit call to toString()).
[DEBUG] [05/02/2015 12:36:16.374] [UHttpTestSystem-akka.actor.default-dispatcher-6] [akka://UHttpTestSystem/user/$g/$a] {
"foo": "bar"
}
[DEBUG] [05/02/2015 12:36:16.375] [UHttpTestSystem-akka.actor.default-dispatcher-6] [akka://UHttpTestSystem/user/$g/$a] JObject(Map(foo -> JString(bar)))
[ERROR] [05/02/2015 12:36:16.375] [UHttpTestSystem-akka.actor.default-dispatcher-6] [akka://UHttpTestSystem/user/$g/$a] JObject(Map(foo -> JString(bar))) (of class nl.typeset.sonofjson.package$JObject)
scala.MatchError: JObject(Map(foo -> JString(bar))) (of class nl.typeset.sonofjson.package$JObject)
at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:253)
at scala.PartialFunction$$anon$1.apply(PartialFunction.scala:251)
at nl.typeset.sonofjson.Implicits$$anonfun$5.applyOrElse(Implicits.scala:70)
at nl.typeset.sonofjson.Implicits$$anonfun$5.applyOrElse(Implicits.scala:70)
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36)
at customer.server.CustomerSocketWorker$$anonfun$businessLogic$1.applyOrElse(CustomerSocketWorker.scala:37)
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:170)
at akka.actor.Actor$class.aroundReceive(Actor.scala:467)
at spray.routing.HttpServiceActor.aroundReceive(HttpService.scala:96)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)
at akka.dispatch.Mailbox.run(Mailbox.scala:221)
at akka.dispatch.Mailbox.exec(Mailbox.scala:231)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.pollAndExecAll(ForkJoinPool.java:1253)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1346)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)