Skip to content

Instantly share code, notes, and snippets.

@tototoshi
Last active August 29, 2015 14:16
Show Gist options
  • Save tototoshi/0194c72a9eee46b97090 to your computer and use it in GitHub Desktop.
Save tototoshi/0194c72a9eee46b97090 to your computer and use it in GitHub Desktop.
scalacache bug?
127.0.0.1:6379> keys *
1) "Test.getUser(1)"
127.0.0.1:6379> get Test.getUser(1)
"\x05\xac\xed\x00\x05sr\x002scala.collection.immutable.List$SerializationProxy\x00\x00\x00\x00\x00\x00\x00\x01\x03\x00\x00xpsr\x00\x04Userx\xae\xbf\rY%\x97\xf6\x02\x00\x02I\x00\x02idL\x00\x04namet\x00\x12Ljava/lang/String;xp\x00\x00\x00\x01t\x00\x04Tarosr\x00,scala.collection.immutable.ListSerializeEnd$\x8a\\c[\xf7S\x0bm\x02\x00\x00xpx"
scalacachedebug> r
[info] Running Test
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[error] (run-main-3a) java.lang.ClassNotFoundException: User
java.lang.ClassNotFoundException: User
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:344)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:626)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at scala.collection.immutable.List$SerializationProxy.readObject(List.scala:477)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at scalacache.redis.RedisSerialization$class.deserialize(RedisSerialization.scala:57)
at scalacache.redis.RedisCache.deserialize(RedisCache.scala:13)
at scalacache.redis.RedisCache$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(RedisCache.scala:30)
at scalacache.redis.RedisCache$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(RedisCache.scala:30)
at scala.Option.map(Option.scala:146)
at scalacache.redis.RedisCache$$anonfun$get$1$$anonfun$apply$1.apply(RedisCache.scala:30)
at scalacache.redis.RedisCache$$anonfun$get$1$$anonfun$apply$1.apply(RedisCache.scala:28)
at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$2$$anon$4.block(ExecutionContextImpl.scala:48)
at scala.concurrent.forkjoin.ForkJoinPool.managedBlock(ForkJoinPool.java:3640)
at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$2.blockOn(ExecutionContextImpl.scala:45)
at scala.concurrent.package$.blocking(package.scala:123)
at scalacache.redis.RedisCache$$anonfun$get$1.apply(RedisCache.scala:28)
at scalacache.redis.RedisCache$$anonfun$get$1.apply(RedisCache.scala:28)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
[trace] Stack trace suppressed: run last compile:run for the full output.
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) Nonzero exit code: 1
[error] Total time: 0 s, completed 2015/03/08 22:19:23
case class User(id: Int, name: String)
object Test {
import scalacache._
import memoization._
import redis._
implicit val scalaCache = ScalaCache(RedisCache("localhost", 6379))
// List[T] が扱えないっぽい?
def getUser(id: Int): List[User] = memoize {
List(User(id, "Taro"))
}
def main(args: Array[String]): Unit = {
getUser(1)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment