Future[WriteResult] завершается ошибкой с исключением ArrayOutOfBounds при использовании scalatest-embedMongo с драйвером Scala реагирующего Mongo версии 0.11.5

Я использую scalatest-embedMongo в качестве версии mongoDB в памяти для приложения Scala. В настоящее время я обновил свой драйвер реактивной памяти с версии 0.10.x до версии 0.11.5. Scatatest-embedMongo прекрасно работал с предыдущей версией реактивного драйвера mongo scala, но с обновленной версией реактивного драйвера mongo, WriteResult Future всегда возвращается с ошибкой, содержащей источник ArrayIndexOutOfBounds из API реагирующего драйвера. Я озадачен этим новым исключением.

Здесь идет весь след стека:

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)

Заранее спасибо!!

1 ответ

Решение

Во-первых, Scalatest embed mongo не предназначен для встраивания mongo в производство (на самом деле это не проверено), но если он работает для вас, я в порядке.

Во-вторых, если я помню, используемая версия mongo db важна для версии реактивного mongo. Какую версию MongoDb вы устанавливаете при запуске экземпляра EmbedMongo? По умолчанию установлено значение 2.4.8 (я потратил время на обновление кода), и оно не поддерживается драйвером.

Другие вопросы по тегам