Created
January 17, 2012 20:11
-
-
Save stephenjudkins/1628612 to your computer and use it in GitHub Desktop.
lift-json bug
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
import net.liftweb.json._ | |
val json = """ | |
{"a": "Value"} | |
""" | |
case class ExtractTo(a: String, b: Option[Boolean]) | |
implicit val formats = DefaultFormats | |
println(parse(json).extract[ExtractTo]) | |
} | |
// Expected: | |
ExtractTo(Value, None) | |
// Actual: | |
net.liftweb.json.MappingException: unknown error | |
at net.liftweb.json.Extraction$.extract(Extraction.scala:45) | |
at net.liftweb.json.JsonAST$JValue.extract(JsonAST.scala:300) | |
at .<init>(<console>:16) | |
at .<clinit>(<console>) | |
at .<init>(<console>:11) | |
at .<clinit>(<console>) | |
at $print(<console>) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | |
at java.lang.reflect.Method.invoke(Method.java:597) | |
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704) | |
at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:914) | |
at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:546) | |
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:577) | |
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:543) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:694) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:712) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:651) | |
at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:542) | |
at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:550) | |
at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:822) | |
at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:851) | |
at xsbt.ConsoleInterface.run(ConsoleInterface.scala:51) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | |
at java.lang.reflect.Method.invoke(Method.java:597) | |
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:57) | |
at sbt.compiler.AnalyzingCompiler.console(AnalyzingCompiler.scala:48) | |
at sbt.Console.console0$1(Console.scala:23) | |
at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:24) | |
at sbt.TrapExit$.executeMain$1(TrapExit.scala:33) | |
at sbt.TrapExit$$anon$1.run(TrapExit.scala:42) | |
Caused by: java.lang.NullPointerException | |
at scala.tools.scalap.scalax.rules.scalasig.ByteCode$.forClass(ClassFileParser.scala:16) | |
at scala.tools.scalap.scalax.rules.scalasig.ScalaSigParser$.parse(ScalaSig.scala:49) | |
at net.liftweb.json.ScalaSigReader$.findClass(ScalaSig.scala:40) | |
at net.liftweb.json.ScalaSigReader$.readConstructor(ScalaSig.scala:24) | |
at net.liftweb.json.Meta$Reflection$.term$1(Meta.scala:268) | |
at net.liftweb.json.Meta$Reflection$.typeParameters(Meta.scala:285) | |
at net.liftweb.json.Meta$.mkContainer$1(Meta.scala:107) | |
at net.liftweb.json.Meta$.fieldMapping$1(Meta.scala:134) | |
at net.liftweb.json.Meta$.toArg$1(Meta.scala:154) | |
at net.liftweb.json.Meta$$anonfun$constructors$1$1$$anonfun$apply$1.apply(Meta.scala:98) | |
at net.liftweb.json.Meta$$anonfun$constructors$1$1$$anonfun$apply$1.apply(Meta.scala:97) | |
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194) | |
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194) | |
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) | |
at scala.collection.immutable.List.foreach(List.scala:45) | |
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194) | |
at scala.collection.immutable.List.map(List.scala:45) | |
at net.liftweb.json.Meta$$anonfun$constructors$1$1.apply(Meta.scala:97) | |
at net.liftweb.json.Meta$$anonfun$constructors$1$1.apply(Meta.scala:96) | |
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194) | |
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194) | |
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) | |
at scala.collection.immutable.List.foreach(List.scala:45) | |
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194) | |
at scala.collection.immutable.List.map(List.scala:45) | |
at net.liftweb.json.Meta$.constructors$1(Meta.scala:96) | |
at net.liftweb.json.Meta$$anonfun$mappingOf$1.apply(Meta.scala:168) | |
at net.liftweb.json.Meta$$anonfun$mappingOf$1.apply(Meta.scala:160) | |
at net.liftweb.json.Meta$Memo.memoize(Meta.scala:197) | |
at net.liftweb.json.Meta$.mappingOf(Meta.scala:160) | |
at net.liftweb.json.Extraction$.mkMapping$1(Extraction.scala:193) | |
at net.liftweb.json.Extraction$.net$liftweb$json$Extraction$$extract0(Extraction.scala:195) | |
at net.liftweb.json.Extraction$.extract(Extraction.scala:42) | |
... 51 more | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment