Our application is written in scala (2.10.5 with sbt 0.13.5) against orientdb 1.7.10 without problems - we are using tinkerpop blueprints.
After upgrading to orientdb 2.0.13 (clean database), we experience exceptions when trying to insert new records to the database (where some of the properties are not primitives)
The exceptions are thrown during deserialization with ClassNotFoundException for classes that exist in the classpath and worked perfectly with orientdb 1.7.x
Looking in Google suggested that there might be class loading issues, where the class loader of the orient libraries is different than the one of other libraries.
I saw in the source code that the serialization / deserialization part was rewritten - which might explain the difference.
com.orientechnologies.orient.enterprise.channel.binary.OResponseProcessingException: Exception during response processing.
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.throwSerializedException(OChannelBinaryAsynchClient.java:441) ~[orientdb-enterprise-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.handleStatus(OChannelBinaryAsynchClient.java:396) ~[orientdb-enterprise-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:282) ~[orientdb-enterprise-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:171) ~[orientdb-enterprise-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.client.remote.OStorageRemote.beginResponse(OStorageRemote.java:2093) ~[orientdb-client-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.client.remote.OStorageRemote.commit(OStorageRemote.java:1335) ~[orientdb-client-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.client.remote.OStorageRemoteThread.commit(OStorageRemoteThread.java:458) ~[orientdb-client-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:583) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:148) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2549) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2518) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.tinkerpop.blueprints.impls.orient.OrientTransactionalGraph.commit(OrientTransactionalGraph.java:161) ~[orientdb-graphdb-2.1-rc5.jar:2.1-rc5]
at com.mycompany.storage.GraphStorageManagerClass.endTransaction(GraphStorageManager.scala:498) ~[classes/:na]
at com.mycompany.storage.GraphStorageManager$$anonfun$12$$anonfun$apply$1.apply$mcVI$sp(GraphStorageManager.scala:431) ~[classes/:na]
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:141) ~[scala-library-2.10.5.jar:na]
at com.mycompany.storage.GraphStorageManager$$anonfun$12.apply(GraphStorageManager.scala:428) ~[classes/:na]
at scala.util.Try$.apply(Try.scala:161) ~[scala-library-2.10.5.jar:na]
at com.mycompany.storage.GraphStorageManager$class.updateGraph(GraphStorageManager.scala:424) ~[classes/:na]
at com.mycompany.storage.GraphStorageManagerClass.updateGraph(GraphStorageManager.scala:458) ~[classes/:na]
at com.mycompany.storage.GraphStorageManager$$anonfun$receive$1.applyOrElse(GraphStorageManager.scala:201) ~[classes/:na]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498) ~[akka-actor_2.10-2.2.1.jar:2.2.1]
at akka.actor.ActorCell.invoke(ActorCell.scala:456) ~[akka-actor_2.10-2.2.1.jar:2.2.1]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237) ~[akka-actor_2.10-2.2.1.jar:2.2.1]
at akka.dispatch.Mailbox.run(Mailbox.scala:219) ~[akka-actor_2.10-2.2.1.jar:2.2.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_71]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_71]
at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_71]
Caused by: java.lang.RuntimeException: com.orientechnologies.orient.core.exception.ODatabaseException: Error on deserialization of Serializable
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readSingleValue(ORecordSerializerBinaryV0.java:391) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.deserialize(ORecordSerializerBinaryV0.java:197) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinary.fromStream(ORecordSerializerBinary.java:74) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.record.impl.ODocument.deserializeFields(ODocument.java:1776) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.server.tx.OTransactionOptimisticProxy.unmarshallRecord(OTransactionOptimisticProxy.java:271) ~[orientdb-server-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.server.tx.OTransactionOptimisticProxy.begin(OTransactionOptimisticProxy.java:156) ~[orientdb-server-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.begin(ODatabaseDocumentTx.java:1536) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.commit(ONetworkProtocolBinary.java:1089) ~[orientdb-server-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:394) ~[orientdb-server-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:217) ~[orientdb-server-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:69) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: Error on deserialization of Serializable
at com.orientechnologies.orient.core.serialization.serializer.record.binary.OSerializableWrapper.fromStream(OSerializableWrapper.java:47) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
at com.orientechnologies.orient.core.serialization.serializer.record.binary.ORecordSerializerBinaryV0.readSingleValue(ORecordSerializerBinaryV0.java:385) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
... 10 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.joda.time.DateTime
at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.7.0_71]
at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.7.0_71]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_71]
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.7.0_71]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.7.0_71]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.7.0_71]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.7.0_71]
at java.lang.Class.forName0(Native Method) ~[na:1.7.0_71]
at java.lang.Class.forName(Unknown Source) ~[na:1.7.0_71]
at java.io.ObjectInputStream.resolveClass(Unknown Source) ~[na:1.7.0_71]
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) ~[na:1.7.0_71]
at java.io.ObjectInputStream.readClassDesc(Unknown Source) ~[na:1.7.0_71]
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) ~[na:1.7.0_71]
at java.io.ObjectInputStream.readObject0(Unknown Source) ~[na:1.7.0_71]
at java.io.ObjectInputStream.readObject(Unknown Source) ~[na:1.7.0_71]
at com.orientechnologies.orient.core.serialization.serializer.record.binary.OSerializableWrapper.fromStream(OSerializableWrapper.java:44) ~[orientdb-core-2.1-rc5.jar:2.1-rc5]
... 11 common frames omitted
Moti.