This happens sometimes when uploading large files (like a ZIP file containing 450 MB of PTM files).
Execution exception[[ClassCastException: com.mongodb.gridfs.GridFSDBFile cannot be cast to com.mongodb.casbah.gridfs.GridFSDBFileSafeJoda]]
in
files.findOne(MongoDBObject("_id" -> new ObjectId(id.stringify))) match
in MongoDBFileService, getBytes()
Is this a performance (system resources insufficiency/overload) issue?
Full error log:
2014-07-07 18:42:23,753 - [ERROR] - from application in play-akka.actor.default-dispatcher-44
! @6in9p8j1h - Internal server error, for (GET) [/api/files/53bae25b0cf2f9bd6fe6e447?key=r1ek3rs] ->
play.api.Application$$anon$1: Execution exception[[ClassCastException: com.mongodb.gridfs.GridFSDBFile cannot be cast to com.mongodb.casbah.gridfs.GridFSDBFileSafeJoda]]
at play.api.Application$class.handleError(Application.scala:293) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.DefaultApplication.handleError(Application.scala:399) [com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:165) [com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:162) [com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:185) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.util.Try$.apply(Try.scala:161) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.util.Failure.recover(Try.scala:185) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [org.scala-lang.scala-library-2.10.3.jar:na]
at play.api.libs.iteratee.Execution$$anon$1.execute(Execution.scala:43) [com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.Promise$class.complete(Promise.scala:55) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:249) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:249) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [org.scala-lang.scala-library-2.10.3.jar:na]
at play.api.libs.iteratee.Execution$$anon$2.execute(Execution.scala:70) [com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.Promise$class.complete(Promise.scala:55) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:23) [org.scala-lang.scala-library-2.10.3.jar:na]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42) [com.typesafe.akka.akka-actor_2.10-2.2.0.jar:2.2.0]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386) [com.typesafe.akka.akka-actor_2.10-2.2.0.jar:2.2.0]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [org.scala-lang.scala-library-2.10.3.jar:na]
Caused by: java.lang.ClassCastException: com.mongodb.gridfs.GridFSDBFile cannot be cast to com.mongodb.casbah.gridfs.GridFSDBFileSafeJoda
at com.mongodb.casbah.gridfs.GridFS.findOne(GridFS.scala:215) ~[org.mongodb.casbah-gridfs_2.10-2.6.3.jar:2.6.3]
at services.mongodb.MongoDBFileService.getBytes(MongoDBFileService.scala:191) ~[medici-play.medici-play-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at api.Files$$anonfun$download$1.apply(Files.scala:120) ~[medici-play.medici-play-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at api.Files$$anonfun$download$1.apply(Files.scala:118) ~[medici-play.medici-play-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at api.ApiController$$anonfun$SecuredAction$1.apply(ApiController.scala:33) ~[medici-play.medici-play-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at api.ApiController$$anonfun$SecuredAction$1.apply(ApiController.scala:25) ~[medici-play.medici-play-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at play.api.mvc.ActionBuilder$$anonfun$apply$10.apply(Action.scala:221) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.ActionBuilder$$anonfun$apply$10.apply(Action.scala:220) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.Action$.invokeBlock(Action.scala:357) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:309) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:109) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:109) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.utils.Threads$.withContextClassLoader(Threads.scala:18) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:108) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:107) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at scala.Option.map(Option.scala:145) ~[org.scala-lang.scala-library-2.10.3.jar:na]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:107) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:100) ~[com.typesafe.play.play_2.10-2.2.1.jar:2.2.1]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:481) ~[com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:481) ~[com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:517) ~[com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:517) ~[com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$13.apply(Iteratee.scala:493) ~[com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$13.apply(Iteratee.scala:493) ~[com.typesafe.play.play-iteratees_2.10-2.2.1.jar:2.2.1]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.10.3.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.10.3.jar:na]
... 6 common frames omitted