I sometimes see the abstract class error when it has not been properly enhanced after making changes on the “dom” module.
HTH, Oscar > El 1/5/2015, a las 17:33, Dan Haywood <[email protected]> > escribió: > > 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) >>> >>> >>> >>> >>> >>> >>> >> >> >> >> Óscar Bou Bou Responsable de Producto Auditor Jefe de Certificación ISO 27001 en BSI CISA, CRISC, APMG ISO 20000, ITIL-F 902 900 231 / 620 267 520 http://www.twitter.com/oscarbou <http://www.twitter.com/oscarbou> http://es.linkedin.com/in/oscarbou <http://es.linkedin.com/in/oscarbou> http://www.GesConsultor.com <http://www.gesconsultor.com/> Este mensaje y los ficheros anexos son confidenciales. Los mismos contienen información reservada que no puede ser difundida. Si usted ha recibido este correo por error, tenga la amabilidad de eliminarlo de su sistema y avisar al remitente mediante reenvío a su dirección electrónica; no deberá copiar el mensaje ni divulgar su contenido a ninguna persona. Su dirección de correo electrónico junto a sus datos personales constan en un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es la de mantener el contacto con Ud. Si quiere saber de qué información disponemos de Ud., modificarla, y en su caso, cancelarla, puede hacerlo enviando un escrito al efecto, acompañado de una fotocopia de su D.N.I. a la siguiente dirección: Gesdatos Software, S.L. , Paseo de la Castellana, 153 bajo - 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015 (Valencia). Asimismo, es su responsabilidad comprobar que este mensaje o sus archivos adjuntos no contengan virus informáticos, y en caso que los tuvieran eliminarlos.
