DataNucleus with DB4O embedded

Performance Result Summary

The final position of DataNucleus with DB4O embedded in the speed performance tests is 31 out of 33,

The following charts show DataNucleus with DB4O embedded relatively to other tested JPA/DBMS combinations.

Position #1 on the X-Axis (the fastest) is about 100 times faster than position #33 (the slowest).
In the chart below the Y-Axis represents result score (maximum 100) in logarithmic scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB
In the chart below the Y-Axis represents result score (maximum 100) in linear scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB

DataNucleus with DB4O embedded Problems (Exceptions)

DataNucleus with DB4O embedded has failed in the following tests (throwing the following stack traces):

  • Basic Person Test - Query Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Basic Person Test - Query Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Element Collection Test - Query Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Element Collection Test - Query Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Inheritance Test - Query Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Inheritance Test - Query Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Indexing Test - Query Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Indexing Test - Query Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:325)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:202)
    	at org.jpab.Test.query(Test.java:315)
    	at org.jpab.Runner$QueryAction.run0(Runner.java:562)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusException: Compiled filter contains method "matches" which is not currently supported by SODA queries
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.processInvokeExpression(QueryToSODAMapper.java:576)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compilePrimaryExpression(AbstractExpressionEvaluator.java:200)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileUnaryExpression(AbstractExpressionEvaluator.java:169)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileAdditiveMultiplicativeExpression(AbstractExpressionEvaluator.java:148)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileRelationalExpression(AbstractExpressionEvaluator.java:123)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.compileOrAndExpression(AbstractExpressionEvaluator.java:65)
    	at org.datanucleus.query.evaluator.AbstractExpressionEvaluator.evaluate(AbstractExpressionEvaluator.java:46)
    	at org.datanucleus.query.expression.Expression.evaluate(Expression.java:335)
    	at org.datanucleus.store.db4o.query.QueryToSODAMapper.compile(QueryToSODAMapper.java:95)
    	at org.datanucleus.store.db4o.query.JPQLQuery.createSODAQuery(JPQLQuery.java:215)
    	at org.datanucleus.store.db4o.query.JPQLQuery.performExecute(JPQLQuery.java:115)
    	at org.datanucleus.store.query.Query.executeQuery(Query.java:1791)
    	at org.datanucleus.store.query.Query.executeWithMap(Query.java:1694)
    	at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:185)
    	... 4 more
    
  • Graph (Binary Tree) Test - Persistence Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Persistence Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Retrieval Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Retrieval Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Update Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Update Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Removal Operations - Few Entities (5/100)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Removal Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Storage Efficiency - Few Entities (5/100)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@538eb7b8" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Graph (Binary Tree) Test - Storage Efficiency - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.node.Node@8135daf" being inserted has id "130003" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3854)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Multithreading Test - Persistence Operations - Few Entities (5/100)
    com.db4o.ext.DatabaseClosedException
    	at com.db4o.internal.ObjectContainerBase.checkClosed(ObjectContainerBase.java:310)
    	at com.db4o.internal.ObjectContainerBase.checkTransaction(ObjectContainerBase.java:338)
    	at com.db4o.internal.ObjectContainerBase.queryByExample(ObjectContainerBase.java:806)
    	at com.db4o.internal.ExternalObjectContainer.queryByExample(ExternalObjectContainer.java:68)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.reserveBlock(DB4OIncrementGenerator.java:142)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.reserveBlock(AbstractGenerator.java:305)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.obtainGenerationBlock(DB4OIncrementGenerator.java:97)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerationBlock(AbstractGenerator.java:197)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractGenerator.java:105)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValueForGenerator(AbstractStoreManager.java:1650)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1550)
    	at org.datanucleus.state.JDOStateManager.populateStrategyFields(JDOStateManager.java:693)
    	at org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:368)
    	at org.datanucleus.state.ObjectProviderFactory.newForPersistentNew(ObjectProviderFactory.java:163)
    	at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1797)
    	at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1647)
    	at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1504)
    	at org.datanucleus.api.jpa.JPAEntityManager.persist(JPAEntityManager.java:535)
    	at org.jpab.Test.persist(Test.java:214)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    
  • Multithreading Test - Persistence Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3832)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Multithreading Test - Retrieval Operations - Few Entities (5/100)
    com.db4o.ext.DatabaseClosedException
    	at com.db4o.internal.ObjectContainerBase.checkClosed(ObjectContainerBase.java:310)
    	at com.db4o.internal.ObjectContainerBase.checkTransaction(ObjectContainerBase.java:338)
    	at com.db4o.internal.ObjectContainerBase.queryByExample(ObjectContainerBase.java:806)
    	at com.db4o.internal.ExternalObjectContainer.queryByExample(ExternalObjectContainer.java:68)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.reserveBlock(DB4OIncrementGenerator.java:142)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.reserveBlock(AbstractGenerator.java:305)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.obtainGenerationBlock(DB4OIncrementGenerator.java:97)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerationBlock(AbstractGenerator.java:197)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractGenerator.java:105)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValueForGenerator(AbstractStoreManager.java:1650)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1550)
    	at org.datanucleus.state.JDOStateManager.populateStrategyFields(JDOStateManager.java:693)
    	at org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:368)
    	at org.datanucleus.state.ObjectProviderFactory.newForPersistentNew(ObjectProviderFactory.java:163)
    	at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1797)
    	at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1647)
    	at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1504)
    	at org.datanucleus.api.jpa.JPAEntityManager.persist(JPAEntityManager.java:535)
    	at org.jpab.Test.persist(Test.java:214)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    
  • Multithreading Test - Retrieval Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3832)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Multithreading Test - Query Operations - Few Entities (5/100)
    com.db4o.ext.DatabaseClosedException
    	at com.db4o.internal.ObjectContainerBase.checkClosed(ObjectContainerBase.java:310)
    	at com.db4o.internal.ObjectContainerBase.checkTransaction(ObjectContainerBase.java:338)
    	at com.db4o.internal.ObjectContainerBase.queryByExample(ObjectContainerBase.java:806)
    	at com.db4o.internal.ExternalObjectContainer.queryByExample(ExternalObjectContainer.java:68)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.reserveBlock(DB4OIncrementGenerator.java:142)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.reserveBlock(AbstractGenerator.java:305)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.obtainGenerationBlock(DB4OIncrementGenerator.java:97)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerationBlock(AbstractGenerator.java:197)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractGenerator.java:105)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValueForGenerator(AbstractStoreManager.java:1650)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1550)
    	at org.datanucleus.state.JDOStateManager.populateStrategyFields(JDOStateManager.java:693)
    	at org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:368)
    	at org.datanucleus.state.ObjectProviderFactory.newForPersistentNew(ObjectProviderFactory.java:163)
    	at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1797)
    	at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1647)
    	at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1504)
    	at org.datanucleus.api.jpa.JPAEntityManager.persist(JPAEntityManager.java:535)
    	at org.jpab.Test.persist(Test.java:214)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    
  • Multithreading Test - Query Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3832)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Multithreading Test - Update Operations - Few Entities (5/100)
    com.db4o.ext.DatabaseClosedException
    	at com.db4o.internal.ObjectContainerBase.checkClosed(ObjectContainerBase.java:310)
    	at com.db4o.internal.ObjectContainerBase.checkTransaction(ObjectContainerBase.java:338)
    	at com.db4o.internal.ObjectContainerBase.queryByExample(ObjectContainerBase.java:806)
    	at com.db4o.internal.ExternalObjectContainer.queryByExample(ExternalObjectContainer.java:68)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.reserveBlock(DB4OIncrementGenerator.java:142)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.reserveBlock(AbstractGenerator.java:305)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.obtainGenerationBlock(DB4OIncrementGenerator.java:97)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerationBlock(AbstractGenerator.java:197)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractGenerator.java:105)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValueForGenerator(AbstractStoreManager.java:1650)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1550)
    	at org.datanucleus.state.JDOStateManager.populateStrategyFields(JDOStateManager.java:693)
    	at org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:368)
    	at org.datanucleus.state.ObjectProviderFactory.newForPersistentNew(ObjectProviderFactory.java:163)
    	at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1797)
    	at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1647)
    	at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1504)
    	at org.datanucleus.api.jpa.JPAEntityManager.persist(JPAEntityManager.java:535)
    	at org.jpab.Test.persist(Test.java:214)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    
  • Multithreading Test - Update Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3832)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Multithreading Test - Removal Operations - Few Entities (5/100)
    com.db4o.ext.DatabaseClosedException
    	at com.db4o.internal.ObjectContainerBase.checkClosed(ObjectContainerBase.java:310)
    	at com.db4o.internal.ObjectContainerBase.checkTransaction(ObjectContainerBase.java:338)
    	at com.db4o.internal.ObjectContainerBase.queryByExample(ObjectContainerBase.java:806)
    	at com.db4o.internal.ExternalObjectContainer.queryByExample(ExternalObjectContainer.java:68)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.reserveBlock(DB4OIncrementGenerator.java:142)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.reserveBlock(AbstractGenerator.java:305)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.obtainGenerationBlock(DB4OIncrementGenerator.java:97)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerationBlock(AbstractGenerator.java:197)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractGenerator.java:105)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValueForGenerator(AbstractStoreManager.java:1650)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1550)
    	at org.datanucleus.state.JDOStateManager.populateStrategyFields(JDOStateManager.java:693)
    	at org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:368)
    	at org.datanucleus.state.ObjectProviderFactory.newForPersistentNew(ObjectProviderFactory.java:163)
    	at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1797)
    	at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1647)
    	at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1504)
    	at org.datanucleus.api.jpa.JPAEntityManager.persist(JPAEntityManager.java:535)
    	at org.jpab.Test.persist(Test.java:214)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    
  • Multithreading Test - Removal Operations - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3832)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    
  • Multithreading Test - Storage Efficiency - Few Entities (5/100)
    com.db4o.ext.DatabaseClosedException
    	at com.db4o.internal.ObjectContainerBase.checkClosed(ObjectContainerBase.java:310)
    	at com.db4o.internal.ObjectContainerBase.checkTransaction(ObjectContainerBase.java:338)
    	at com.db4o.internal.ObjectContainerBase.queryByExample(ObjectContainerBase.java:806)
    	at com.db4o.internal.ExternalObjectContainer.queryByExample(ExternalObjectContainer.java:68)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.reserveBlock(DB4OIncrementGenerator.java:142)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.reserveBlock(AbstractGenerator.java:305)
    	at org.datanucleus.store.db4o.valuegenerator.DB4OIncrementGenerator.obtainGenerationBlock(DB4OIncrementGenerator.java:97)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerationBlock(AbstractGenerator.java:197)
    	at org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractGenerator.java:105)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValueForGenerator(AbstractStoreManager.java:1650)
    	at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1550)
    	at org.datanucleus.state.JDOStateManager.populateStrategyFields(JDOStateManager.java:693)
    	at org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:368)
    	at org.datanucleus.state.ObjectProviderFactory.newForPersistentNew(ObjectProviderFactory.java:163)
    	at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1797)
    	at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1647)
    	at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1504)
    	at org.datanucleus.api.jpa.JPAEntityManager.persist(JPAEntityManager.java:535)
    	at org.jpab.Test.persist(Test.java:214)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    
  • Multithreading Test - Storage Efficiency - Many Entities (5000)
    javax.persistence.PersistenceException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:122)
    	at org.jpab.Test.persist(Test.java:217)
    	at org.jpab.Test.persist(Test.java:200)
    	at org.jpab.Runner$PersistAction.run0(Runner.java:538)
    	at org.jpab.Runner$TestAction.run(Runner.java:517)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: org.datanucleus.exceptions.NucleusUserException: Object "org.jpab.basic.Person@7d6b4be5" being inserted has id "13" yet an object with this id already exists in the datastore!
    	at org.datanucleus.store.db4o.DB4OPersistenceHandler.insertObject(DB4OPersistenceHandler.java:140)
    	at org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2371)
    	at org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3803)
    	at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3832)
    	at org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3755)
    	at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3701)
    	at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4084)
    	at org.datanucleus.ObjectManagerImpl$2.transactionPreCommit(ObjectManagerImpl.java:398)
    	at org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:370)
    	at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:259)
    	at org.datanucleus.api.jpa.JPAEntityTransaction.commit(JPAEntityTransaction.java:103)
    	... 5 more
    

DataNucleus with DB4O embedded compared to the alternatives

See head to head comparisons of DataNucleus with DB4O embedded vs the following compatitors: