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.





Reply via email to