Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kryo doesn't handle variable length arguments (for Strings and Symbols) #157

Closed
mikegagnon opened this issue Aug 17, 2012 · 1 comment
Closed
Assignees

Comments

@mikegagnon
Copy link

diff --git a/src/test/scala/com/twitter/scalding/KryoTest.scala b/src/test/scala/com/twitter/scalding/KryoTest.
index 7a9f3b2..b52a736 100644
--- a/src/test/scala/com/twitter/scalding/KryoTest.scala
+++ b/src/test/scala/com/twitter/scalding/KryoTest.scala
@@ -20,6 +20,8 @@ case class TestCaseClassForSerialization(x : String, y : Int)
case class TestValMap(val map : Map[String,Double])
case class TestValHashMap(val map : HashMap[String,Double])

+case class TestVarArgs(val strs : String*)
+
class KryoTest extends Specification {

noDetailedDiffs() //Fixes issue for scala 2.9
@@ -76,6 +78,7 @@ class KryoTest extends Specification {
Vector(1,2,3,4,5),
TestValMap(null),
Some("junk"),

  •                  TestVarArgs("abc"),
                   'hai)
     .asInstanceOf[List[AnyRef]]
    
    serializationRT(test) must be_==(test)

test-only KryoTest
[info] Compiling 1 Scala source to /Users/mikeg/workspace/scalding-mng/scalding/target/scala-2.9.2/test-classes...
[error] x KryoSerializers and KryoDeserializers should
[error] x round trip any non-array object
[error] Encountered unregistered class ID: 95
[error] Serialization trace:
[error] array (scala.collection.mutable.WrappedArray$ofRef)
[error] strs (com.twitter.scalding.TestVarArgs) (DefaultClassResolver.java:113)
[error] com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:113)
[error] com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:596)
[error] com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:707)
[error] com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.read(DefaultArraySerializers.java:338)
[error] com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.read(DefaultArraySerializers.java:293)
[error] com.esotericsoftware.kryo.Kryo.readObjectOrNull(Kryo.java:692)
[error] com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.read(FieldSerializer.java:521)
[error] com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:221)
[error] com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:637)
[error] com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.read(FieldSerializer.java:515)
[error] com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:221)
[error] com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:615)
[error] cascading.kryo.KryoDeserializer.deserialize(KryoDeserializer.java:37)

@ghost ghost assigned johnynek Aug 17, 2012
@johnynek
Copy link
Collaborator

twitter/chill#3

That fixes it. When it is pulled into chill, and a version of chill > 0.0.2 is released, it should fix this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants