oh yeah, I remember that. Indeed. On 1 May 2015 at 16:32, <[email protected]> wrote:
> Tnx Dan, > > > > I will look into that. It has the characteristics of an incomplete > metamodel I encountered before in Matching App .... > > > > > Hard to say without more information, Johan. > > Double check that the "RegisterEntities" key in isis.properties specifies > all the packages where your domain objects live. We introduced this to > provide a hint to DN so that it would be able to eagerly build its > metamodel; we found that sometimes if we made it lazy then we'd get odd > errors. > > Another thing you can do is to add dummy @Hidden actions on a repository > that "surface" all subtypes of entities; this is actually what we used to > do before "RegisterEntities" so perhaps do this first (I also have a > sneaking suspicion that "RegisterEntities" might perhaps be broken, need to > investigate). > > Of course, all the above might be a wild good chase... but it's seeing DN > complain that it can't instantiate an abstract class that makes me think > that its metamodel is somehow incomplete... > > HTH > Dan > > > > > > > > > > On 1 May 2015 at 14:57, wrote: > > > When running integration tests in estatio I get. But sometimes it does > > run. Is this a datanucleus problem or am I missing something? > > > > > > > > grtz Johan > > > > > > > > > > 15:55:14,224 [IsisTransaction main INFO ] abort > > transaction IsisTransaction@10f125e5[state=MUST_ABORT,commands=0] > > > > > > > > javax.jdo.JDOFatalInternalException: Cannot instantiate abstract > > class. > > > > at > > > org.estatio.dom.EstatioDomainObject.dnNewInstance(EstatioDomainObject.java) > > > > at > > > org.datanucleus.state.StateManagerImpl.saveFields(StateManagerImpl.java:672) > > > > at > > > org.datanucleus.state.StateManagerImpl.initialiseForPersistentNew(StateManagerImpl.java:420) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis.initialiseForPersistentNew(JDOStateManagerForIsis.java:87) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis.initialiseForPersistentNew(JDOStateManagerForIsis.java:33) > > > > at > > > org.datanucleus.state.ObjectProviderFactoryImpl.newForPersistentNew(ObjectProviderFactoryImpl.java:218) > > > > at > > > org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:1999) > > > > at > > > org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1843) > > > > at > > > org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1698) > > > > at > > > org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:720) > > > > at > > > org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:745) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand.java:54) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.executeCommands(DataNucleusObjectStore.java:363) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:357) > > > > at > > > org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:521) > > > > at > > > org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:467) > > > > at > > > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:392) > > > > at > > > org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:238) > > > > at > > > org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:265) > > > > at > > > org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.allMatches(DomainObjectContainerDefault.java:546) > > > > at > > > org.apache.isis.applib.AbstractContainedObject.allMatches(AbstractContainedObject.java:170) > > > > at > > > org.estatio.dom.UdoDomainRepositoryAndFactory.allMatches(UdoDomainRepositoryAndFactory.java:69) > > > > at org.estatio.dom.asset.Units.findByProperty(Units.java:100) > > > > at > > > org.estatio.dom.budget.BudgetKeyTable.generateBudgetKeyItems(BudgetKeyTable.java:298) > > > > at > > > org.estatio.fixture.budget.BudgetKeyTableAbstact.createBudgetKeyTable(BudgetKeyTableAbstact.java:47) > > > > at > > > org.estatio.fixture.budget.BudgetKeyTableForOxf.execute(BudgetKeyTableForOxf.java:49) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:549) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.access$200(FixtureScript.java:248) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScript.run(FixtureScript.java:719) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScripts.runFixtureScript(FixtureScripts.java:285) > > > > at > > > org.estatio.fixturescripts.EstatioFixtureScripts.runFixtureScript(EstatioFixtureScripts.java:60) > > > > at > > > org.estatio.integtests.EstatioIntegrationTest.runFixtureScript(EstatioIntegrationTest.java:75) > > > > at > > > org.estatio.integtests.budget.BudgetKeyTableTest.setupData(BudgetKeyTableTest.java:41) > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > > at > > > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) > > > > at > > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > > > > at > > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) > > > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) > > > > at > > > org.apache.isis.core.integtestsupport.IntegrationTestAbstract$IsisTransactionRule$1.evaluate(IntegrationTestAbstract.java:214) > > > > at > > > org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2$1.evaluate(JUnitRuleMockery2.java:146) > > > > at > > > org.apache.isis.core.integtestsupport.ExceptionRecognizerTranslate$TranslationStatement.evaluate(ExceptionRecognizerTranslate.java:32) > > > > at > > > org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168) > > > > at org.junit.rules.RunRules.evaluate(RunRules.java:20) > > > > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) > > > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > > > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > > > > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > > > > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > > > > at > > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > > > > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > > > > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > > > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > > > > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > > > > at org.junit.runners.Suite.runChild(Suite.java:127) > > > > at org.junit.runners.Suite.runChild(Suite.java:26) > > > > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > > > > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > > > > at > > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > > > > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > > > > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > > > > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > > > > at org.junit.runner.JUnitCore.run(JUnitCore.java:160) > > > > at > > > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78) > > > > at > > > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212) > > > > at > > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68) > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > > at > > com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) > > > > > > > > 15:55:14,224 [IsisTransaction main INFO ] abort > > transaction IsisTransaction@10f125e5[state=MUST_ABORT,commands=0] > > > > > > > > javax.jdo.JDOFatalInternalException: Cannot instantiate abstract > > class. > > > > at > > > org.estatio.dom.EstatioDomainObject.dnNewInstance(EstatioDomainObject.java) > > > > at > > > org.datanucleus.state.StateManagerImpl.saveFields(StateManagerImpl.java:672) > > > > at > > > org.datanucleus.state.StateManagerImpl.initialiseForPersistentNew(StateManagerImpl.java:420) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis.initialiseForPersistentNew(JDOStateManagerForIsis.java:87) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis.initialiseForPersistentNew(JDOStateManagerForIsis.java:33) > > > > at > > > org.datanucleus.state.ObjectProviderFactoryImpl.newForPersistentNew(ObjectProviderFactoryImpl.java:218) > > > > at > > > org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:1999) > > > > at > > > org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1843) > > > > at > > > org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1698) > > > > at > > > org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:720) > > > > at > > > org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:745) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand.java:54) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.executeCommands(DataNucleusObjectStore.java:363) > > > > at > > > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:357) > > > > at > > > org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:521) > > > > at > > > org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:467) > > > > at > > > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:392) > > > > at > > > org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:238) > > > > at > > > org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:265) > > > > at > > > org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.allMatches(DomainObjectContainerDefault.java:546) > > > > at > > > org.apache.isis.applib.AbstractContainedObject.allMatches(AbstractContainedObject.java:170) > > > > at > > > org.estatio.dom.UdoDomainRepositoryAndFactory.allMatches(UdoDomainRepositoryAndFactory.java:69) > > > > at org.estatio.dom.asset.Units.findByProperty(Units.java:100) > > > > at > > > org.estatio.dom.budget.BudgetKeyTable.generateBudgetKeyItems(BudgetKeyTable.java:298) > > > > at > > > org.estatio.fixture.budget.BudgetKeyTableAbstact.createBudgetKeyTable(BudgetKeyTableAbstact.java:47) > > > > at > > > org.estatio.fixture.budget.BudgetKeyTableForOxf.execute(BudgetKeyTableForOxf.java:49) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:549) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.access$200(FixtureScript.java:248) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScript.run(FixtureScript.java:719) > > > > at > > > org.apache.isis.applib.fixturescripts.FixtureScripts.runFixtureScript(FixtureScripts.java:285) > > > > at > > > org.estatio.fixturescripts.EstatioFixtureScripts.runFixtureScript(EstatioFixtureScripts.java:60) > > > > at > > > org.estatio.integtests.EstatioIntegrationTest.runFixtureScript(EstatioIntegrationTest.java:75) > > > > at > > > org.estatio.integtests.budget.BudgetKeyTableTest.setupData(BudgetKeyTableTest.java:41) > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > > > at > > > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) > > > > at > > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > > > > at > > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) > > > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) > > > > at > > > org.apache.isis.core.integtestsupport.IntegrationTestAbstract$IsisTransactionRule$1.evaluate(IntegrationTestAbstract.java:214) > > > > at > > > org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2$1.evaluate(JUnitRuleMockery2.java:146) > > > > at > > > org.apache.isis.core.integtestsupport.ExceptionRecognizerTranslate$TranslationStatement.evaluate(ExceptionRecognizerTranslate.java:32) > > > > at > > > org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168) > > > > at org.junit.rules.RunRules.evaluate(RunRules.java:20) > > > > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) > > > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > > > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > > > > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > > > > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > > > > at > > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > > > > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > > > > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > > > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) > > > > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > > > > at org.junit.runners.Suite.runChild(Suite.java:127) > > > > at org.junit.runners.Suite.runChild(Suite.java:26) > > > > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > > > > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > > > > at > > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > > > > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > > > > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > > > > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > > > > at org.junit.runner.JUnitCore.run(JUnitCore.java:160) > > > > at > > > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78) > > > > at > > > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212) > > > > at > > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68) > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > > > at > > com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) > > > > > > > > > > > > > > > > > >
