2

I am using scalatest-embedMongo as In-memory version of mongoDB for a Scala application. I have currently upgraded my reactivemongo driver from version 0.10.x to version 0.11.5. The scalatest-embedMongo was working fine with the previous version of reactive mongo scala driver but, with the upgraded version of reactive mongo driver, The WriteResult Future is always returning with a Failure containing ArrayIndexOutOfBounds sourcing from the reactiveMongo driver API. I am puzzled with this new exception.

Here goes the entire stack trace:

java.lang.ArrayIndexOutOfBoundsException: 123
at org.jboss.netty.buffer.LittleEndianHeapChannelBuffer.getInt(LittleEndianHeapChannelBuffer.java:69)
at reactivemongo.api.SerializationPack$class.readAndDeserialize(serializationpack.scala:31)
at reactivemongo.api.BSONSerializationPack$.readAndDeserialize(serializationpack.scala:41)
at reactivemongo.api.collections.GenericCollection$$anonfun$update$1$$anonfun$apply$14.apply(genericcollection.scala:314)
at reactivemongo.api.collections.GenericCollection$$anonfun$update$1$$anonfun$apply$14.apply(genericcollection.scala:313)
at scala.util.Success$$anonfun$map$1.apply(Try.scala:206)
at scala.util.Try$.apply(Try.scala:161)
at scala.util.Success.map(Try.scala:206)
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
at scala.concurrent.impl.ExecutionContextImpl$$anon$3.exec(ExecutionContextImpl.scala:107)
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)

Thanks in advance!!

too honest for this site
  • 12,050
  • 4
  • 30
  • 52
Manish Mishra
  • 796
  • 6
  • 21

1 Answers1

1

First, Scalatest embed mongo is not design to embed mongo in production (in fact it is not tested for that) but if it work for you i'm ok.

Second, If I remember, the version of mongo db used is important related with reactivemongo version. What MongoDb version do you set when you start a EmbedMongo instance ? By default, is is 2.4.8 that was set (I do invest time to update code) and it is not supported by the driver.

  • 1
    Thanks for the reply. I got my concepts clear about when and where to use the plug-in. I didn't find any instruction to set particular version of mongodb before using it. I might have used it with default version since I didn't configure it to a specific version. – Manish Mishra Aug 17 '15 at 04:06