scala / pickling

Fast, customizable, boilerplate-free pickling support for Scala
lampwww.epfl.ch/~hmiller/pickling
BSD 3-Clause "New" or "Revised" License
831 stars 79 forks source link

Runtime exception when unpickling Array of tuple #75

Closed lilZ420 closed 10 years ago

lilZ420 commented 10 years ago

Below is a use case to produce a runtime exception when unpickling an Array of tuple.

import scala.pickling. import json. object JsonTest extends App { val simplePickled = new Simple(Array(("test", 3))).pickle.unpickle[Simple] } class Simple(val x: Array[(String, Int)]) {}

Originally reported on StackOverflow: http://stackoverflow.com/questions/19427894/unpickler-for-array-of-tuple

huntc commented 10 years ago

What error are you getting? I'm getting a "Scala field hd isn't represented as a Java field, neither it has a Java accessor method" and I'm wondering if the issue is associated.

lilZ420 commented 10 years ago

I'm getting a Missing Requirement Error. Below is the stacktrace.

Exception in thread "main" scala.reflect.internal.MissingRequirementError: class scala.Tuple2[java.lang.String in JavaMirror with... at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:61) at scala.reflect.internal.Mirrors$RootsBase.staticModuleOrClass(Mirrors.scala:72) at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:119) at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:21) at scala.pickling.internal.package$.typeFromString(package.scala:61) at scala.pickling.internal.package$$anonfun$2.apply(package.scala:63) at scala.pickling.internal.package$$anonfun$2.apply(package.scala:63) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) at scala.collection.immutable.List.foreach(List.scala:318) at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) at scala.collection.AbstractTraversable.map(Traversable.scala:105) at scala.pickling.internal.package$.typeFromString(package.scala:63) at scala.pickling.FastTypeTag$.apply(FastTags.scala:57)