You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com> on 2013/12/13 16:55:41 UTC

IsisException: Object not yet known to Isis

Hi to all.

While testing a part of our app, the following exception has been raised. It blocks the execution of any logic.

Not sure about if it's a framework error or perhaps something regarding Isis Session management.

Any help, please?

Thanks,

Oscar




16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
executing consequence for rule "event handler: Asset Dimension Impact
restored. Send emails" in com.xms.framework.monitoring.rules:
java.lang.RuntimeException:
org.apache.isis.core.commons.exceptions.IsisException: Object not yet
known to Isis: [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
com.xms.framework.api.exception.XMSRuntimeException: Exception executing
consequence for rule "event handler: Asset Dimension Impact restored.
Send emails" in com.xms.framework.monitoring.rules:
java.lang.RuntimeException:
org.apache.isis.core.commons.exceptions.IsisException: Object not yet
known to Isis: [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
   at
com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
   at
com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at
com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
   at
com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
   at
com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
   at
com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
   at
com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
   at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
   at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
   at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
   at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
   at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
   at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
   at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
   at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
   at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
   at
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
   at
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
   at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
   at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
   at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at
org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
   at
org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
   at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
   at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
   at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
   at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
   at
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
   at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
   at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
   at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
   at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
   at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:662)
Caused by: Exception executing consequence for rule "event handler:
Asset Dimension Impact restored. Send emails" in
com.xms.framework.monitoring.rules: java.lang.RuntimeException:
org.apache.isis.core.commons.exceptions.IsisException: Object not yet
known to Isis: [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
   at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
   at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
   at
org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
   at
org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
   at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
   at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
   at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
   at
com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
   at
com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at
org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
   at
org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
   at
org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
   at
org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
   at
org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
   at
org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
   at
com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
   ... 73 more
Caused by: java.lang.RuntimeException:
org.apache.isis.core.commons.exceptions.IsisException: Object not yet
known to Isis: [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
   at
org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
   at
org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
   at
org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
   at
org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
   at
org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
   at
org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
   at
org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
   at
org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
   at
org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
   at
org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
   at
org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
   at
org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
   at
org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
   at
org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
   at
org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
   at
com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
   at
org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
   at
org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
   at
org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
   at
org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
   at
org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
   at
org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
   at
org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
   at
org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
   at
com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
   at
com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
   at
com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
   at
org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
   at
org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
   at
org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
   at
org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
   at
org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
   at
org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
   at
org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
   at
org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
   at
com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
   at
org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
   at
org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
   at
org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
   at
org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
   at
org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
   at
org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
   at
org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
   at
org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
   at
org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
   at
org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
   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:361)
   at
org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
   at
org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
   at
org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
   at
org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
   at
org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
   at
org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
   at
org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
   at
com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
   at
com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
   at
com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
   at
com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
   at
com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
Source)
   at
com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
Source)
   at
org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
   ... 91 more
Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
   ... 184 more





Re: IsisException: Object not yet known to Isis

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
On 27 December 2013 16:04, GESCONSULTOR - Óscar Bou
<o....@gesconsultor.com>wrote:

> Sure, Dan.
>
> Just to let you know, seems that there's a new DataNucleus release (3.2.9).
>

ok, so this is now addressed in ISIS-646 (committed earlier today).

Cheers
Dan



>
> I've "touched" my pom.xml files and was experimenting some errors while
> enhancing, a FieldNotFound exception (updateLock).
>
> Just after updating the <datanucleus-core.version> property to new version
> the compiler is working.
>
> HTH,
>
> Oscar
>
>
>
>
> El 23/12/2013, a las 08:40, Dan Haywood <da...@haywood-associates.co.uk>
> escribió:
>
> > Hi Oscar,
> > glad that sorted it out.  Yes, let's use that as the fix.  Are you happy
> to
> > raise the ticket and apply the patch?
> > Cheers
> > Dan
> >
> >
> > On 21 December 2013 14:57, GESCONSULTOR - Óscar Bou
> > <o....@gesconsultor.com>wrote:
> >
> >> Hi, Dan.
> >>
> >> Seems it was that annotation (dependentElement) and it was properly
> solved
> >> by changing this:
> >>
> >> void ensureRootObject(final PersistenceCapable pojo) {
> >>  final ObjectAdapter adapter =
> >> getAdapterManager().getAdapterFor(pojo);
> >>  if(adapter == null) {
> >>      throw new IsisException(MessageFormat.format("Object not yet
> >> known to Isis: {0}", pojo));
> >>  }
> >>
> >> to this:
> >>
> >> void ensureRootObject(final PersistenceCapable pojo) {
> >>  final ObjectAdapter adapter =
> >> getAdapterManager().adapterFor(pojo);
> >>  if(adapter == null) {
> >>      throw new IsisException(MessageFormat.format("Object not yet
> >> known to Isis: {0}", pojo));
> >>  }
> >>
> >>
> >> Should it be updated on Isis?
> >>
> >>
> >>
> >>
> >> El 13/12/2013, a las 18:36, GESCONSULTOR - Óscar Bou <
> >> o.bou@gesconsultor.com> escribió:
> >>
> >>>
> >>> Just to clarify to anyone seeing this code, I've noticed there was some
> >> legacy code on this Entity (the Programming Model's addTo removeFrom).
> >>>
> >>> As it's not currently needed (due to JDO's managed relationships) I've
> >> deleted it.
> >>>
> >>> Thanks again,
> >>>
> >>> Oscar
> >>>
> >>>
> >>>
> >>> El 13/12/2013, a las 18:23, Dan Haywood <da...@haywood-associates.co.uk>
> >> escribió:
> >>>
> >>>> It could be the (... dependentElement = "true") bit.  I don't think we
> >> are
> >>>> using dependent objects in Estatio, which might be a reason we haven't
> >> seen
> >>>> this issue.
> >>>>
> >>>> You could also try temporarily removing that annotation.  It might
> >> change
> >>>> your schema, so obviously only something to do running under HSQLDB.
> >>>>
> >>>> Cheers
> >>>> Dan
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On 13 December 2013 17:19, GESCONSULTOR - Óscar Bou
> >>>> <o....@gesconsultor.com>wrote:
> >>>>
> >>>>> Not being able to reproduce it now, as I need one system
> administrator
> >>>>> that has just left until Monday.
> >>>>>
> >>>>> Those entities are "part" of a Scale (inside a Collection), and are
> >> lazy
> >>>>> loaded due to that, I think.
> >>>>>
> >>>>> They have the following code:
> >>>>>
> >>>>> @PersistenceCapable
> >>>>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> >>>>> public class TimeScale extends AbstractScale {
> >>>>>
> >>>>> // {{ TimeScaleLevels (Collection)
> >>>>> @Persistent(mappedBy = "timeScale", dependentElement = "true")
> >>>>> private SortedSet<PointInTime> timeScaleLevels = new
> >>>>> TreeSet<PointInTime>();
> >>>>>
> >>>>> @MemberOrder(sequence = "1")
> >>>>> public SortedSet<PointInTime> getTimeScaleLevels() {
> >>>>>    return this.timeScaleLevels;
> >>>>> }
> >>>>>
> >>>>> public void setTimeScaleLevels(final SortedSet<PointInTime>
> >>>>> timeScaleLevels) {
> >>>>>    this.timeScaleLevels = timeScaleLevels;
> >>>>> }
> >>>>>
> >>>>> @MemberOrder(name = "timeScaleLevels", sequence = "10")
> >>>>> public TimeScale insertIntoTimeScaleLevels(final PointInTime
> >>>>> timeScaleLevel) {
> >>>>>    this.addToTimeScaleLevels(timeScaleLevel);
> >>>>>    return this;
> >>>>> }
> >>>>>
> >>>>> // Programming model.
> >>>>> public void addToTimeScaleLevels(final PointInTime timeScaleLevel) {
> >>>>>    // check for no-op
> >>>>>    if ((timeScaleLevel == null) ||
> >>>>> this.getTimeScaleLevels().contains(timeScaleLevel)) {
> >>>>>        return;
> >>>>>    }
> >>>>>    // associate new
> >>>>>    this.getTimeScaleLevels().add(timeScaleLevel);
> >>>>>    // additional business logic
> >>>>>    this.onAddToTimeScaleLevels(timeScaleLevel);
> >>>>> }
> >>>>>
> >>>>> // Action.
> >>>>> @MemberOrder(name = "timeScaleLevels", sequence = "20")
> >>>>> public TimeScale deleteFromTimeScaleLevels(final PointInTime
> >>>>> timeScaleLevel) {
> >>>>>    this.removeFromTimeScaleLevels(timeScaleLevel);
> >>>>>    return this;
> >>>>> }
> >>>>>
> >>>>> // Programming model.
> >>>>> public void removeFromTimeScaleLevels(final PointInTime
> >>>>> timeScaleLevel) {
> >>>>>    // check for no-op
> >>>>>    if ((timeScaleLevel == null) ||
> >>>>> !this.getTimeScaleLevels().contains(timeScaleLevel)) {
> >>>>>        return;
> >>>>>    }
> >>>>>    // dissociate existing
> >>>>>    this.getTimeScaleLevels().remove(timeScaleLevel);
> >>>>>    // additional business logic
> >>>>>    this.onRemoveFromTimeScaleLevels(timeScaleLevel);
> >>>>> }
> >>>>>
> >>>>> protected void onAddToTimeScaleLevels(final PointInTime
> >>>>> timeScaleLevel) {
> >>>>> }
> >>>>>
> >>>>> protected void onRemoveFromTimeScaleLevels(final PointInTime
> >>>>> timeScaleLevel) {
> >>>>> }
> >>>>>
> >>>>> // }}
> >>>>>
> >>>>> @SuppressWarnings("unchecked")
> >>>>> @Override
> >>>>> protected <E extends AbstractScaleLevel> SortedSet<E>
> >>>>> internalGetElements() {
> >>>>>    return (SortedSet<E>) this.timeScaleLevels;
> >>>>> }
> >>>>>
> >>>>> public PointInTime createLevel(@Named("Name") final String name,
> >>>>> @Named("Description") @Optional final String description,
> @Named("Time
> >>>>> Lapse Duration") final BigDecimal timelapseDuration, @Named("Time
> Lapse
> >>>>> Unit") final StandardTimeUnit timelapseUnit) {
> >>>>>
> >>>>>    return this.wrap(this.timeScales).createScaleLevel(this, name,
> >>>>> description, StandardTimeUnit.HOURS.convert(timelapseDuration,
> >>>>> timelapseUnit), timelapseUnit);
> >>>>> }
> >>>>>
> >>>>> // {{ levelForPointInTime (action)
> >>>>> @Hidden
> >>>>> @MemberOrder(sequence = "1")
> >>>>> public PointInTime levelForPointInTime(final BigDecimal pointInTime,
> >>>>> final StandardTimeUnit pointInTimeUnits) {
> >>>>>    return (PointInTime)
> >>>>> this.levelForValue(StandardTimeUnit.HOURS.convert(pointInTime,
> >>>>> pointInTimeUnits));
> >>>>> }
> >>>>>
> >>>>> // }}
> >>>>>
> >>>>> // {{ injected: TimeScales
> >>>>> private TimeScales timeScales;
> >>>>>
> >>>>> public void setTimeScales(final TimeScales timeScales) {
> >>>>>    this.timeScales = timeScales;
> >>>>> }
> >>>>> // }}
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>
> -------------------------------------------------------------------------------------------------------------------
> >>>>>
> >>>>>
> >>>>> @PersistenceCapable
> >>>>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> >>>>> public class PointInTime extends AbstractScaleLevelBin {
> >>>>>
> >>>>> // {{ TimeScale (property)
> >>>>> private TimeScale timeScale;
> >>>>>
> >>>>> @Column(allowsNull = "false")
> >>>>> @MemberOrder(sequence = "1")
> >>>>> public TimeScale getTimeScale() {
> >>>>>    return this.timeScale;
> >>>>> }
> >>>>>
> >>>>> public void setTimeScale(final TimeScale timeScale) {
> >>>>>    this.timeScale = timeScale;
> >>>>> }
> >>>>>
> >>>>> // }}
> >>>>>
> >>>>> // {{ TimeLapseDuration (property)
> >>>>> private BigDecimal timeLapseDuration;
> >>>>>
> >>>>> @Disabled
> >>>>> @Column(allowsNull = "false")
> >>>>> @MemberOrder(sequence = "1")
> >>>>> public BigDecimal getTimeLapseDuration() {
> >>>>>    return this.timeLapseDuration;
> >>>>> }
> >>>>>
> >>>>> public void setTimeLapseDuration(final BigDecimal timeLapseDuration)
> >> {
> >>>>>    this.timeLapseDuration = timeLapseDuration;
> >>>>> }
> >>>>>
> >>>>> public void modifyTimeLapseDuration(final BigDecimal
> >>>>> timeLapseDuration) {
> >>>>>    final BigDecimal currentTimeLapseDuration =
> >>>>> this.getTimeLapseDuration();
> >>>>>    // check for no-op
> >>>>>    if ((timeLapseDuration == null) ||
> >>>>> timeLapseDuration.equals(currentTimeLapseDuration)) {
> >>>>>        return;
> >>>>>    }
> >>>>>    // associate new
> >>>>>    this.setTimeLapseDuration(timeLapseDuration);
> >>>>>    // additional business logic
> >>>>>    this.onModifyTimeLapseDuration(currentTimeLapseDuration,
> >>>>> timeLapseDuration);
> >>>>> }
> >>>>>
> >>>>> public void clearTimeLapseDuration() {
> >>>>>    final BigDecimal currentTimeLapseDuration =
> >>>>> this.getTimeLapseDuration();
> >>>>>    // check for no-op
> >>>>>    if (currentTimeLapseDuration == null) {
> >>>>>        return;
> >>>>>    }
> >>>>>    // dissociate existing
> >>>>>    this.setTimeLapseDuration(null);
> >>>>>    // additional business logic
> >>>>>    this.onClearTimeLapseDuration(currentTimeLapseDuration);
> >>>>> }
> >>>>>
> >>>>> protected void onModifyTimeLapseDuration(final BigDecimal
> >>>>> oldTimeLapseDuration, final BigDecimal newTimeLapseDuration) {
> >>>>>
> >>>>>    if ((newTimeLapseDuration != null) && (this.getTimeLapseUnit() !=
> >>>>> null)) {
> >>>>>
> >>>>> this.setValue(StandardTimeUnit.HOURS.convert(this.timeLapseDuration,
> >>>>> this.timeLapseUnit));
> >>>>>    } else {
> >>>>>        this.setValue(null);
> >>>>>    }
> >>>>>
> >>>>> }
> >>>>>
> >>>>> protected void onClearTimeLapseDuration(final BigDecimal
> >>>>> oldTimeLapseDuration) {
> >>>>>
> >>>>>    this.setValue(null);
> >>>>>
> >>>>> }
> >>>>>
> >>>>> // }}
> >>>>>
> >>>>> // {{ TimeLapseUnit (property)
> >>>>> private StandardTimeUnit timeLapseUnit;
> >>>>>
> >>>>> @Disabled
> >>>>> @Column(allowsNull = "false")
> >>>>> @MemberOrder(sequence = "1")
> >>>>> public StandardTimeUnit getTimeLapseUnit() {
> >>>>>    return this.timeLapseUnit;
> >>>>> }
> >>>>>
> >>>>> public void setTimeLapseUnit(final StandardTimeUnit timeLapseUnit) {
> >>>>>    this.timeLapseUnit = timeLapseUnit;
> >>>>> }
> >>>>>
> >>>>> // }}
> >>>>>
> >>>>> // {{ assignTimeLapse (action)
> >>>>> @MemberOrder(sequence = "1")
> >>>>> public void assignTimeLapse(@Named("Time Lapse - Duration") final
> >>>>> BigDecimal duration, @Named("Time Lapse - Unit") final
> StandardTimeUnit
> >>>>> standardTimeUnit) {
> >>>>>
> >>>>>    this.setTimeLapseDuration(duration);
> >>>>>    this.setTimeLapseUnit(standardTimeUnit);
> >>>>>    this.setValue(StandardTimeUnit.HOURS.convert(duration,
> >>>>> standardTimeUnit));
> >>>>>
> >>>>> }
> >>>>>
> >>>>> // }}
> >>>>>
> >>>>> /*
> >>>>> * (non-Javadoc)
> >>>>> *
> >>>>> * @see
> >>>>> *
> >>>>> com.xms.framework.risk.criteria.api.domain.ScaleLevel#isValueIncluded
> >>>>> * (java.lang.Object)
> >>>>> */
> >>>>> @Override
> >>>>> @Programmatic
> >>>>> public Boolean isValueIncluded(final BigDecimal value) {
> >>>>>    // The equals() method for BigDecimals fails when they don't have
> >>>>> the
> >>>>>    // same scale. This is the proper way. See:
> >>>>>    //
> >>>>>
> >>
> http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
> >>>>>    if ((this.getValue() == null) ||
> >> (this.getValue().compareTo(value)
> >>>>> < 0)) {
> >>>>>        return false;
> >>>>>    } else {
> >>>>>        final AbstractScaleLevel lowerLevel =
> >>>>> this.getScale().lowerLevel(this);
> >>>>>        if (lowerLevel == null) {
> >>>>>            return true;
> >>>>>        } else if (lowerLevel.getValue().compareTo(value) > 0) {
> >>>>>            return true;
> >>>>>        } else {
> >>>>>            return false;
> >>>>>        }
> >>>>>    }
> >>>>> }
> >>>>>
> >>>>> @Override
> >>>>> @NotPersisted
> >>>>> @NotPersistent
> >>>>> @Hidden
> >>>>> public AbstractScale getScale() {
> >>>>>    return this.getTimeScale();
> >>>>> }
> >>>>>
> >>>>> @Override
> >>>>> public void setScale(final AbstractScale scale) {
> >>>>>    this.timeScale = (TimeScale) scale;
> >>>>> }
> >>>>>
> >>>>> public String disableValue() {
> >>>>>    return "When you enter a Duration and a Time Unit the value will
> >>>>> automatically be the equivalent number of Hours";
> >>>>> }
> >>>>>
> >>>>> }
> >>>>>
> >>>>>
> >>>>>
> >>>>> HTH,
> >>>>>
> >>>>> Oscar
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> El 13/12/2013, a las 17:58, Dan Haywood <
> dan@haywood-associates.co.uk>
> >>>>> escribió:
> >>>>>
> >>>>>> It is, perhaps, possible that the object not yet mapped is already
> >>>>>> persisted... perhaps it's being loaded lazily earlier on somehow,
> and
> >>>>> isn't
> >>>>>> being picked up by the synchronizer.
> >>>>>>
> >>>>>> Can you put a break point at the ensureRootLogging(...) when it
> throws
> >>>>> the
> >>>>>> exception, and copy the full stack trace out?
> >>>>>>
> >>>>>> Also, there may be a quick fix (though it's a bit hacky; it'd be
> nice
> >> to
> >>>>>> understand why this is breaking).  Even so, to apply that possible
> >>>>>> fix/hack, in ensureRootLObject(...), change the call to
> >>>>>> "getAdapterFor(...)" to instead call "adapterFor(...)"; this latter
> >>>>> method
> >>>>>> will create the adapter if it's not there.
> >>>>>>
> >>>>>> Dan
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
> >>>>>> <o....@gesconsultor.com>wrote:
> >>>>>>
> >>>>>>> Thanks a lot, Dan.
> >>>>>>>
> >>>>>>> This object is:  [value=1.000000000000000,  [name=1 hour,
> >>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>
> >>>>>>> That "PointInTime" was initially created through a Fixture - on a
> >> past
> >>>>>>> execution -, and currently loaded from the database through a
> >> repository
> >>>>>>> call.
> >>>>>>>
> >>>>>>> The code for the repository's method, "findByPropMultiTenant" is
> the
> >>>>> next
> >>>>>>> one:
> >>>>>>>
> >>>>>>> @Programmatic
> >>>>>>> public <S extends AbstractXMSDomainObject> List<S>
> >>>>>>> findByPropMultiTenant(final String tenantId, final Class<S> clazz,
> >> final
> >>>>>>> String whereClause, final Integer firstResult, final Integer
> >> maxResults,
> >>>>>>> final String orderClause) {
> >>>>>>>   return
> >>>>>>> IsisContext.getTransactionManager().executeWithinTransaction(new
> >>>>>>> TransactionalClosureWithReturnAbstract<List<S>>() {
> >>>>>>>
> >>>>>>>       @Override
> >>>>>>>       public List<S> execute() {
> >>>>>>>           return
> >>>>>>>
> >>>>>
> >>
> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
> >>>>>>> clazz, whereClause, firstResult, maxResults, orderClause);
> >>>>>>>       }
> >>>>>>>
> >>>>>>>       @Override
> >>>>>>>       public void onFailure() {
> >>>>>>>
> >>>>>>>       }
> >>>>>>>   });
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>> @SuppressWarnings("unchecked")
> >>>>>>> @Programmatic
> >>>>>>> private <S extends AbstractXMSDomainObject> List<S>
> >>>>>>> doFindByPropMultiTenant(final String tenantId, final Class<S>
> clazz,
> >>>>> final
> >>>>>>> String whereClause, final Integer firstResult, final Integer
> >> maxResults,
> >>>>>>> final String orderClause) {
> >>>>>>>
> >>>>>>>   // Ensure any newly persisted objects are saved to the object
> >>>>> store
> >>>>>>>   // before executing the query.
> >>>>>>>   this.getContainer().flush();
> >>>>>>>
> >>>>>>>   // See this for examples:
> >>>>>>>   //
> >>>>>>>
> >>>>>
> >>
> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
> >>>>>>>   final Query query =
> >>>>>>> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
> >>>>>>>
> >>>>>>>   // Always add the Tenant filter.
> >>>>>>>   String filter = String.format("tenantId == '%s'", tenantId);
> >>>>>>>   if ((whereClause != null) && (whereClause.trim().length() != 0))
> >>>>> {
> >>>>>>>       filter = filter.concat(" && ").concat(whereClause);
> >>>>>>>   }
> >>>>>>>   query.setFilter(filter);
> >>>>>>>
> >>>>>>>   query.setRange(this.firstResultToLong(firstResult),
> >>>>>>> this.maxResultsToLong(maxResults));
> >>>>>>>   final List<S> result = (List<S>) query.execute();
> >>>>>>>   return result;
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>> Oscar
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> El 13/12/2013, a las 17:15, Dan Haywood <
> >> dan@haywood-associates.co.uk>
> >>>>>>> escribió:
> >>>>>>>
> >>>>>>>> Hi Oscar,
> >>>>>>>> the stack trace is somewhat truncated, unfortunately, but I think
> I
> >> can
> >>>>>>>> approximately work it out.
> >>>>>>>>
> >>>>>>>> *It starts to get useful down at the very end, in the last nested
> >>>>>>> block...*
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
> >>>>> Object
> >>>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>>
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>> at
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>>>
> >> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >>>>>>>> at
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>>> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >>>>>>>> at
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >>>>>>>> at
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >>>>>>>> at
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *From what I can see, there's a repository query...*
> >>>>>>>>
> >>>>>>>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> >>>>>>>> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
> >>>>>>>> oryAndFactory.java:509)
> >>>>>>>> at
> >>>>>>>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> >>>>>>>> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
> >>>>>>>> oryAndFactory.java:502)
> >>>>>>>> at
> >>>>>>>>
> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
> >>>>>>>>
> >>>>>
> >>
> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
> >>>>>>>> jectRepositoryAndFactory.java:16)
> >>>>>>>> at
> >>>>>>>> com.xms.framework.monitoring.domain.model.architecture.
> >>>>>>>> AssetsMonitoringInformation.monitoringInformation(
> >>>>>>>> AssetsMonitoringInformation.java:12)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *which (as they all do) causes a flush of the xactn, which in turn
> >>>>> causes
> >>>>>>>> some queued up "create object" commands to be executed...*
> >>>>>>>>
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
> >>>>>>>>
> >> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
> >>>>>>>> .java:54)
> >>>>>>>> at
> >>>>>>>>
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
> >>>>>>>> executeCommands(DataNucleusObjectStore.java:361)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *DataNucleus then does its persist...*
> >>>>>>>>
> >>>>>>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(
> >>>>>>>> JDOStateManager.java:3779)
> >>>>>>>> at
> >>>>>>>> org.datanucleus.state.JDOStateManager.makePersistent(
> >>>>>>>> JDOStateManager.java:3752)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *and calls Isis through a callback:*
> >>>>>>>>
> >>>>>>>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
> >>>>>>>> JDOCallbackHandler.java:158)
> >>>>>>>> at
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *Isis then attempts to synchronize its state with that of
> >> DataNucleus,
> >>>>>>> and
> >>>>>>>> fails fast because it's being asked to locate an object that it
> has
> >>>>> never
> >>>>>>>> seen before:*
> >>>>>>>>
> >>>>>>>> Caused by: java.lang.RuntimeException:
> >>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> >> yet
> >>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>>
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>> at
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >>>>>>>> at
> >>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *The actual exception is thrown by
> >>>>>>> FrameworkSynchronizer#ensureRootObject*
> >>>>>>>>
> >>>>>>>> void ensureRootObject(final PersistenceCapable pojo) {
> >>>>>>>>  final ObjectAdapter adapter =
> >>>>>>>> getAdapterManager().getAdapterFor(pojo);
> >>>>>>>>  if(adapter == null) {
> >>>>>>>>      throw new IsisException(MessageFormat.format("Object not yet
> >>>>>>>> known to Isis: {0}", pojo));
> >>>>>>>>  }
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *This is a "fail fast" because, I think, it ought not to happen...
> >> if
> >>>>> the
> >>>>>>>> object was created using
> >>>>>>>> DomainObjectContainer#createTransientInstance(...), then the
> pojo's
> >>>>>>> adapter
> >>>>>>>> would be in the AdapterManager.*
> >>>>>>>>
> >>>>>>>> Could you put a break point on the failing line (in
> >> ensureRootObject)
> >>>>> and
> >>>>>>>> find out which object is not mapped, then see how that object is
> >>>>>>> originally
> >>>>>>>> instantiated (eg put a break point in that object's constructor
> and
> >>>>> look
> >>>>>>>> down the stacktrace).
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Dan
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
> >>>>>>>> <o....@gesconsultor.com>wrote:
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Hi to all.
> >>>>>>>>>
> >>>>>>>>> While testing a part of our app, the following exception has been
> >>>>>>> raised.
> >>>>>>>>> It blocks the execution of any logic.
> >>>>>>>>>
> >>>>>>>>> Not sure about if it's a framework error or perhaps something
> >>>>> regarding
> >>>>>>>>> Isis Session management.
> >>>>>>>>>
> >>>>>>>>> Any help, please?
> >>>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>>
> >>>>>>>>> Oscar
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
> >>>>>>>>> transaction IsisTransaction@4ff9c1a1
> [state=MUST_ABORT,commands=0]
> >>>>>>>>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
> >>>>>>>>> executing consequence for rule "event handler: Asset Dimension
> >> Impact
> >>>>>>>>> restored. Send emails" in com.xms.framework.monitoring.rules:
> >>>>>>>>> java.lang.RuntimeException:
> >>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> >> yet
> >>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>>> com.xms.framework.api.exception.XMSRuntimeException: Exception
> >>>>> executing
> >>>>>>>>> consequence for rule "event handler: Asset Dimension Impact
> >> restored.
> >>>>>>>>> Send emails" in com.xms.framework.monitoring.rules:
> >>>>>>>>> java.lang.RuntimeException:
> >>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> >> yet
> >>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
> >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
> >>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> >>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> >>>>>>>>> at java.lang.Thread.run(Thread.java:662)
> >>>>>>>>> Caused by: Exception executing consequence for rule "event
> handler:
> >>>>>>>>> Asset Dimension Impact restored. Send emails" in
> >>>>>>>>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
> >>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> >> yet
> >>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
> >>>>>>>>> at
> >>>>>>>>>
> >> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> >>>>>>>>> at
> >>>>>>>>>
> >> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
> >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
> >>>>>>>>> ... 73 more
> >>>>>>>>> Caused by: java.lang.RuntimeException:
> >>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> >> yet
> >>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>
> >> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
> >>>>>>>>> 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:361)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
> >>>>>>>>> Source)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
> >>>>>>>>> Source)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> >>>>>>>>> ... 91 more
> >>>>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
> >>>>> Object
> >>>>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >>>>>>>>> at
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >>>>>>>>> ... 184 more
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>>>
> >>>
> >>
> >>
>
>

Re: IsisException: Object not yet known to Isis

Posted by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com>.
Sure, Dan.

Just to let you know, seems that there's a new DataNucleus release (3.2.9).

I've "touched" my pom.xml files and was experimenting some errors while enhancing, a FieldNotFound exception (updateLock).

Just after updating the <datanucleus-core.version> property to new version the compiler is working.

HTH,

Oscar




El 23/12/2013, a las 08:40, Dan Haywood <da...@haywood-associates.co.uk> escribió:

> Hi Oscar,
> glad that sorted it out.  Yes, let's use that as the fix.  Are you happy to
> raise the ticket and apply the patch?
> Cheers
> Dan
> 
> 
> On 21 December 2013 14:57, GESCONSULTOR - Óscar Bou
> <o....@gesconsultor.com>wrote:
> 
>> Hi, Dan.
>> 
>> Seems it was that annotation (dependentElement) and it was properly solved
>> by changing this:
>> 
>> void ensureRootObject(final PersistenceCapable pojo) {
>>  final ObjectAdapter adapter =
>> getAdapterManager().getAdapterFor(pojo);
>>  if(adapter == null) {
>>      throw new IsisException(MessageFormat.format("Object not yet
>> known to Isis: {0}", pojo));
>>  }
>> 
>> to this:
>> 
>> void ensureRootObject(final PersistenceCapable pojo) {
>>  final ObjectAdapter adapter =
>> getAdapterManager().adapterFor(pojo);
>>  if(adapter == null) {
>>      throw new IsisException(MessageFormat.format("Object not yet
>> known to Isis: {0}", pojo));
>>  }
>> 
>> 
>> Should it be updated on Isis?
>> 
>> 
>> 
>> 
>> El 13/12/2013, a las 18:36, GESCONSULTOR - Óscar Bou <
>> o.bou@gesconsultor.com> escribió:
>> 
>>> 
>>> Just to clarify to anyone seeing this code, I've noticed there was some
>> legacy code on this Entity (the Programming Model's addTo removeFrom).
>>> 
>>> As it's not currently needed (due to JDO's managed relationships) I've
>> deleted it.
>>> 
>>> Thanks again,
>>> 
>>> Oscar
>>> 
>>> 
>>> 
>>> El 13/12/2013, a las 18:23, Dan Haywood <da...@haywood-associates.co.uk>
>> escribió:
>>> 
>>>> It could be the (... dependentElement = "true") bit.  I don't think we
>> are
>>>> using dependent objects in Estatio, which might be a reason we haven't
>> seen
>>>> this issue.
>>>> 
>>>> You could also try temporarily removing that annotation.  It might
>> change
>>>> your schema, so obviously only something to do running under HSQLDB.
>>>> 
>>>> Cheers
>>>> Dan
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On 13 December 2013 17:19, GESCONSULTOR - Óscar Bou
>>>> <o....@gesconsultor.com>wrote:
>>>> 
>>>>> Not being able to reproduce it now, as I need one system administrator
>>>>> that has just left until Monday.
>>>>> 
>>>>> Those entities are "part" of a Scale (inside a Collection), and are
>> lazy
>>>>> loaded due to that, I think.
>>>>> 
>>>>> They have the following code:
>>>>> 
>>>>> @PersistenceCapable
>>>>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
>>>>> public class TimeScale extends AbstractScale {
>>>>> 
>>>>> // {{ TimeScaleLevels (Collection)
>>>>> @Persistent(mappedBy = "timeScale", dependentElement = "true")
>>>>> private SortedSet<PointInTime> timeScaleLevels = new
>>>>> TreeSet<PointInTime>();
>>>>> 
>>>>> @MemberOrder(sequence = "1")
>>>>> public SortedSet<PointInTime> getTimeScaleLevels() {
>>>>>    return this.timeScaleLevels;
>>>>> }
>>>>> 
>>>>> public void setTimeScaleLevels(final SortedSet<PointInTime>
>>>>> timeScaleLevels) {
>>>>>    this.timeScaleLevels = timeScaleLevels;
>>>>> }
>>>>> 
>>>>> @MemberOrder(name = "timeScaleLevels", sequence = "10")
>>>>> public TimeScale insertIntoTimeScaleLevels(final PointInTime
>>>>> timeScaleLevel) {
>>>>>    this.addToTimeScaleLevels(timeScaleLevel);
>>>>>    return this;
>>>>> }
>>>>> 
>>>>> // Programming model.
>>>>> public void addToTimeScaleLevels(final PointInTime timeScaleLevel) {
>>>>>    // check for no-op
>>>>>    if ((timeScaleLevel == null) ||
>>>>> this.getTimeScaleLevels().contains(timeScaleLevel)) {
>>>>>        return;
>>>>>    }
>>>>>    // associate new
>>>>>    this.getTimeScaleLevels().add(timeScaleLevel);
>>>>>    // additional business logic
>>>>>    this.onAddToTimeScaleLevels(timeScaleLevel);
>>>>> }
>>>>> 
>>>>> // Action.
>>>>> @MemberOrder(name = "timeScaleLevels", sequence = "20")
>>>>> public TimeScale deleteFromTimeScaleLevels(final PointInTime
>>>>> timeScaleLevel) {
>>>>>    this.removeFromTimeScaleLevels(timeScaleLevel);
>>>>>    return this;
>>>>> }
>>>>> 
>>>>> // Programming model.
>>>>> public void removeFromTimeScaleLevels(final PointInTime
>>>>> timeScaleLevel) {
>>>>>    // check for no-op
>>>>>    if ((timeScaleLevel == null) ||
>>>>> !this.getTimeScaleLevels().contains(timeScaleLevel)) {
>>>>>        return;
>>>>>    }
>>>>>    // dissociate existing
>>>>>    this.getTimeScaleLevels().remove(timeScaleLevel);
>>>>>    // additional business logic
>>>>>    this.onRemoveFromTimeScaleLevels(timeScaleLevel);
>>>>> }
>>>>> 
>>>>> protected void onAddToTimeScaleLevels(final PointInTime
>>>>> timeScaleLevel) {
>>>>> }
>>>>> 
>>>>> protected void onRemoveFromTimeScaleLevels(final PointInTime
>>>>> timeScaleLevel) {
>>>>> }
>>>>> 
>>>>> // }}
>>>>> 
>>>>> @SuppressWarnings("unchecked")
>>>>> @Override
>>>>> protected <E extends AbstractScaleLevel> SortedSet<E>
>>>>> internalGetElements() {
>>>>>    return (SortedSet<E>) this.timeScaleLevels;
>>>>> }
>>>>> 
>>>>> public PointInTime createLevel(@Named("Name") final String name,
>>>>> @Named("Description") @Optional final String description, @Named("Time
>>>>> Lapse Duration") final BigDecimal timelapseDuration, @Named("Time Lapse
>>>>> Unit") final StandardTimeUnit timelapseUnit) {
>>>>> 
>>>>>    return this.wrap(this.timeScales).createScaleLevel(this, name,
>>>>> description, StandardTimeUnit.HOURS.convert(timelapseDuration,
>>>>> timelapseUnit), timelapseUnit);
>>>>> }
>>>>> 
>>>>> // {{ levelForPointInTime (action)
>>>>> @Hidden
>>>>> @MemberOrder(sequence = "1")
>>>>> public PointInTime levelForPointInTime(final BigDecimal pointInTime,
>>>>> final StandardTimeUnit pointInTimeUnits) {
>>>>>    return (PointInTime)
>>>>> this.levelForValue(StandardTimeUnit.HOURS.convert(pointInTime,
>>>>> pointInTimeUnits));
>>>>> }
>>>>> 
>>>>> // }}
>>>>> 
>>>>> // {{ injected: TimeScales
>>>>> private TimeScales timeScales;
>>>>> 
>>>>> public void setTimeScales(final TimeScales timeScales) {
>>>>>    this.timeScales = timeScales;
>>>>> }
>>>>> // }}
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>> -------------------------------------------------------------------------------------------------------------------
>>>>> 
>>>>> 
>>>>> @PersistenceCapable
>>>>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
>>>>> public class PointInTime extends AbstractScaleLevelBin {
>>>>> 
>>>>> // {{ TimeScale (property)
>>>>> private TimeScale timeScale;
>>>>> 
>>>>> @Column(allowsNull = "false")
>>>>> @MemberOrder(sequence = "1")
>>>>> public TimeScale getTimeScale() {
>>>>>    return this.timeScale;
>>>>> }
>>>>> 
>>>>> public void setTimeScale(final TimeScale timeScale) {
>>>>>    this.timeScale = timeScale;
>>>>> }
>>>>> 
>>>>> // }}
>>>>> 
>>>>> // {{ TimeLapseDuration (property)
>>>>> private BigDecimal timeLapseDuration;
>>>>> 
>>>>> @Disabled
>>>>> @Column(allowsNull = "false")
>>>>> @MemberOrder(sequence = "1")
>>>>> public BigDecimal getTimeLapseDuration() {
>>>>>    return this.timeLapseDuration;
>>>>> }
>>>>> 
>>>>> public void setTimeLapseDuration(final BigDecimal timeLapseDuration)
>> {
>>>>>    this.timeLapseDuration = timeLapseDuration;
>>>>> }
>>>>> 
>>>>> public void modifyTimeLapseDuration(final BigDecimal
>>>>> timeLapseDuration) {
>>>>>    final BigDecimal currentTimeLapseDuration =
>>>>> this.getTimeLapseDuration();
>>>>>    // check for no-op
>>>>>    if ((timeLapseDuration == null) ||
>>>>> timeLapseDuration.equals(currentTimeLapseDuration)) {
>>>>>        return;
>>>>>    }
>>>>>    // associate new
>>>>>    this.setTimeLapseDuration(timeLapseDuration);
>>>>>    // additional business logic
>>>>>    this.onModifyTimeLapseDuration(currentTimeLapseDuration,
>>>>> timeLapseDuration);
>>>>> }
>>>>> 
>>>>> public void clearTimeLapseDuration() {
>>>>>    final BigDecimal currentTimeLapseDuration =
>>>>> this.getTimeLapseDuration();
>>>>>    // check for no-op
>>>>>    if (currentTimeLapseDuration == null) {
>>>>>        return;
>>>>>    }
>>>>>    // dissociate existing
>>>>>    this.setTimeLapseDuration(null);
>>>>>    // additional business logic
>>>>>    this.onClearTimeLapseDuration(currentTimeLapseDuration);
>>>>> }
>>>>> 
>>>>> protected void onModifyTimeLapseDuration(final BigDecimal
>>>>> oldTimeLapseDuration, final BigDecimal newTimeLapseDuration) {
>>>>> 
>>>>>    if ((newTimeLapseDuration != null) && (this.getTimeLapseUnit() !=
>>>>> null)) {
>>>>> 
>>>>> this.setValue(StandardTimeUnit.HOURS.convert(this.timeLapseDuration,
>>>>> this.timeLapseUnit));
>>>>>    } else {
>>>>>        this.setValue(null);
>>>>>    }
>>>>> 
>>>>> }
>>>>> 
>>>>> protected void onClearTimeLapseDuration(final BigDecimal
>>>>> oldTimeLapseDuration) {
>>>>> 
>>>>>    this.setValue(null);
>>>>> 
>>>>> }
>>>>> 
>>>>> // }}
>>>>> 
>>>>> // {{ TimeLapseUnit (property)
>>>>> private StandardTimeUnit timeLapseUnit;
>>>>> 
>>>>> @Disabled
>>>>> @Column(allowsNull = "false")
>>>>> @MemberOrder(sequence = "1")
>>>>> public StandardTimeUnit getTimeLapseUnit() {
>>>>>    return this.timeLapseUnit;
>>>>> }
>>>>> 
>>>>> public void setTimeLapseUnit(final StandardTimeUnit timeLapseUnit) {
>>>>>    this.timeLapseUnit = timeLapseUnit;
>>>>> }
>>>>> 
>>>>> // }}
>>>>> 
>>>>> // {{ assignTimeLapse (action)
>>>>> @MemberOrder(sequence = "1")
>>>>> public void assignTimeLapse(@Named("Time Lapse - Duration") final
>>>>> BigDecimal duration, @Named("Time Lapse - Unit") final StandardTimeUnit
>>>>> standardTimeUnit) {
>>>>> 
>>>>>    this.setTimeLapseDuration(duration);
>>>>>    this.setTimeLapseUnit(standardTimeUnit);
>>>>>    this.setValue(StandardTimeUnit.HOURS.convert(duration,
>>>>> standardTimeUnit));
>>>>> 
>>>>> }
>>>>> 
>>>>> // }}
>>>>> 
>>>>> /*
>>>>> * (non-Javadoc)
>>>>> *
>>>>> * @see
>>>>> *
>>>>> com.xms.framework.risk.criteria.api.domain.ScaleLevel#isValueIncluded
>>>>> * (java.lang.Object)
>>>>> */
>>>>> @Override
>>>>> @Programmatic
>>>>> public Boolean isValueIncluded(final BigDecimal value) {
>>>>>    // The equals() method for BigDecimals fails when they don't have
>>>>> the
>>>>>    // same scale. This is the proper way. See:
>>>>>    //
>>>>> 
>> http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
>>>>>    if ((this.getValue() == null) ||
>> (this.getValue().compareTo(value)
>>>>> < 0)) {
>>>>>        return false;
>>>>>    } else {
>>>>>        final AbstractScaleLevel lowerLevel =
>>>>> this.getScale().lowerLevel(this);
>>>>>        if (lowerLevel == null) {
>>>>>            return true;
>>>>>        } else if (lowerLevel.getValue().compareTo(value) > 0) {
>>>>>            return true;
>>>>>        } else {
>>>>>            return false;
>>>>>        }
>>>>>    }
>>>>> }
>>>>> 
>>>>> @Override
>>>>> @NotPersisted
>>>>> @NotPersistent
>>>>> @Hidden
>>>>> public AbstractScale getScale() {
>>>>>    return this.getTimeScale();
>>>>> }
>>>>> 
>>>>> @Override
>>>>> public void setScale(final AbstractScale scale) {
>>>>>    this.timeScale = (TimeScale) scale;
>>>>> }
>>>>> 
>>>>> public String disableValue() {
>>>>>    return "When you enter a Duration and a Time Unit the value will
>>>>> automatically be the equivalent number of Hours";
>>>>> }
>>>>> 
>>>>> }
>>>>> 
>>>>> 
>>>>> 
>>>>> HTH,
>>>>> 
>>>>> Oscar
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> El 13/12/2013, a las 17:58, Dan Haywood <da...@haywood-associates.co.uk>
>>>>> escribió:
>>>>> 
>>>>>> It is, perhaps, possible that the object not yet mapped is already
>>>>>> persisted... perhaps it's being loaded lazily earlier on somehow, and
>>>>> isn't
>>>>>> being picked up by the synchronizer.
>>>>>> 
>>>>>> Can you put a break point at the ensureRootLogging(...) when it throws
>>>>> the
>>>>>> exception, and copy the full stack trace out?
>>>>>> 
>>>>>> Also, there may be a quick fix (though it's a bit hacky; it'd be nice
>> to
>>>>>> understand why this is breaking).  Even so, to apply that possible
>>>>>> fix/hack, in ensureRootLObject(...), change the call to
>>>>>> "getAdapterFor(...)" to instead call "adapterFor(...)"; this latter
>>>>> method
>>>>>> will create the adapter if it's not there.
>>>>>> 
>>>>>> Dan
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
>>>>>> <o....@gesconsultor.com>wrote:
>>>>>> 
>>>>>>> Thanks a lot, Dan.
>>>>>>> 
>>>>>>> This object is:  [value=1.000000000000000,  [name=1 hour,
>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>> 
>>>>>>> That "PointInTime" was initially created through a Fixture - on a
>> past
>>>>>>> execution -, and currently loaded from the database through a
>> repository
>>>>>>> call.
>>>>>>> 
>>>>>>> The code for the repository's method, "findByPropMultiTenant" is the
>>>>> next
>>>>>>> one:
>>>>>>> 
>>>>>>> @Programmatic
>>>>>>> public <S extends AbstractXMSDomainObject> List<S>
>>>>>>> findByPropMultiTenant(final String tenantId, final Class<S> clazz,
>> final
>>>>>>> String whereClause, final Integer firstResult, final Integer
>> maxResults,
>>>>>>> final String orderClause) {
>>>>>>>   return
>>>>>>> IsisContext.getTransactionManager().executeWithinTransaction(new
>>>>>>> TransactionalClosureWithReturnAbstract<List<S>>() {
>>>>>>> 
>>>>>>>       @Override
>>>>>>>       public List<S> execute() {
>>>>>>>           return
>>>>>>> 
>>>>> 
>> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
>>>>>>> clazz, whereClause, firstResult, maxResults, orderClause);
>>>>>>>       }
>>>>>>> 
>>>>>>>       @Override
>>>>>>>       public void onFailure() {
>>>>>>> 
>>>>>>>       }
>>>>>>>   });
>>>>>>> 
>>>>>>> }
>>>>>>> 
>>>>>>> @SuppressWarnings("unchecked")
>>>>>>> @Programmatic
>>>>>>> private <S extends AbstractXMSDomainObject> List<S>
>>>>>>> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz,
>>>>> final
>>>>>>> String whereClause, final Integer firstResult, final Integer
>> maxResults,
>>>>>>> final String orderClause) {
>>>>>>> 
>>>>>>>   // Ensure any newly persisted objects are saved to the object
>>>>> store
>>>>>>>   // before executing the query.
>>>>>>>   this.getContainer().flush();
>>>>>>> 
>>>>>>>   // See this for examples:
>>>>>>>   //
>>>>>>> 
>>>>> 
>> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
>>>>>>>   final Query query =
>>>>>>> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
>>>>>>> 
>>>>>>>   // Always add the Tenant filter.
>>>>>>>   String filter = String.format("tenantId == '%s'", tenantId);
>>>>>>>   if ((whereClause != null) && (whereClause.trim().length() != 0))
>>>>> {
>>>>>>>       filter = filter.concat(" && ").concat(whereClause);
>>>>>>>   }
>>>>>>>   query.setFilter(filter);
>>>>>>> 
>>>>>>>   query.setRange(this.firstResultToLong(firstResult),
>>>>>>> this.maxResultsToLong(maxResults));
>>>>>>>   final List<S> result = (List<S>) query.execute();
>>>>>>>   return result;
>>>>>>> }
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> 
>>>>>>> Oscar
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> El 13/12/2013, a las 17:15, Dan Haywood <
>> dan@haywood-associates.co.uk>
>>>>>>> escribió:
>>>>>>> 
>>>>>>>> Hi Oscar,
>>>>>>>> the stack trace is somewhat truncated, unfortunately, but I think I
>> can
>>>>>>>> approximately work it out.
>>>>>>>> 
>>>>>>>> *It starts to get useful down at the very end, in the last nested
>>>>>>> block...*
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
>>>>> Object
>>>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>>> 
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>>>> 
>> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>>>> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *From what I can see, there's a repository query...*
>>>>>>>> 
>>>>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>>>>>>> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
>>>>>>>> oryAndFactory.java:509)
>>>>>>>> at
>>>>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>>>>>>> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
>>>>>>>> oryAndFactory.java:502)
>>>>>>>> at
>>>>>>>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
>>>>>>>> 
>>>>> 
>> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
>>>>>>>> jectRepositoryAndFactory.java:16)
>>>>>>>> at
>>>>>>>> com.xms.framework.monitoring.domain.model.architecture.
>>>>>>>> AssetsMonitoringInformation.monitoringInformation(
>>>>>>>> AssetsMonitoringInformation.java:12)
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *which (as they all do) causes a flush of the xactn, which in turn
>>>>> causes
>>>>>>>> some queued up "create object" commands to be executed...*
>>>>>>>> 
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
>>>>>>>> 
>> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
>>>>>>>> .java:54)
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
>>>>>>>> executeCommands(DataNucleusObjectStore.java:361)
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *DataNucleus then does its persist...*
>>>>>>>> 
>>>>>>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(
>>>>>>>> JDOStateManager.java:3779)
>>>>>>>> at
>>>>>>>> org.datanucleus.state.JDOStateManager.makePersistent(
>>>>>>>> JDOStateManager.java:3752)
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *and calls Isis through a callback:*
>>>>>>>> 
>>>>>>>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
>>>>>>>> JDOCallbackHandler.java:158)
>>>>>>>> at
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *Isis then attempts to synchronize its state with that of
>> DataNucleus,
>>>>>>> and
>>>>>>>> fails fast because it's being asked to locate an object that it has
>>>>> never
>>>>>>>> seen before:*
>>>>>>>> 
>>>>>>>> Caused by: java.lang.RuntimeException:
>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
>> yet
>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>>> 
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>>>>>> at
>>>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *The actual exception is thrown by
>>>>>>> FrameworkSynchronizer#ensureRootObject*
>>>>>>>> 
>>>>>>>> void ensureRootObject(final PersistenceCapable pojo) {
>>>>>>>>  final ObjectAdapter adapter =
>>>>>>>> getAdapterManager().getAdapterFor(pojo);
>>>>>>>>  if(adapter == null) {
>>>>>>>>      throw new IsisException(MessageFormat.format("Object not yet
>>>>>>>> known to Isis: {0}", pojo));
>>>>>>>>  }
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> *This is a "fail fast" because, I think, it ought not to happen...
>> if
>>>>> the
>>>>>>>> object was created using
>>>>>>>> DomainObjectContainer#createTransientInstance(...), then the pojo's
>>>>>>> adapter
>>>>>>>> would be in the AdapterManager.*
>>>>>>>> 
>>>>>>>> Could you put a break point on the failing line (in
>> ensureRootObject)
>>>>> and
>>>>>>>> find out which object is not mapped, then see how that object is
>>>>>>> originally
>>>>>>>> instantiated (eg put a break point in that object's constructor and
>>>>> look
>>>>>>>> down the stacktrace).
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Dan
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
>>>>>>>> <o....@gesconsultor.com>wrote:
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Hi to all.
>>>>>>>>> 
>>>>>>>>> While testing a part of our app, the following exception has been
>>>>>>> raised.
>>>>>>>>> It blocks the execution of any logic.
>>>>>>>>> 
>>>>>>>>> Not sure about if it's a framework error or perhaps something
>>>>> regarding
>>>>>>>>> Isis Session management.
>>>>>>>>> 
>>>>>>>>> Any help, please?
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> 
>>>>>>>>> Oscar
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
>>>>>>>>> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
>>>>>>>>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
>>>>>>>>> executing consequence for rule "event handler: Asset Dimension
>> Impact
>>>>>>>>> restored. Send emails" in com.xms.framework.monitoring.rules:
>>>>>>>>> java.lang.RuntimeException:
>>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
>> yet
>>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>>>> com.xms.framework.api.exception.XMSRuntimeException: Exception
>>>>> executing
>>>>>>>>> consequence for rule "event handler: Asset Dimension Impact
>> restored.
>>>>>>>>> Send emails" in com.xms.framework.monitoring.rules:
>>>>>>>>> java.lang.RuntimeException:
>>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
>> yet
>>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
>>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
>>>>>>>>> at
>>>>>>>>> 
>>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>>>>>> at java.lang.Thread.run(Thread.java:662)
>>>>>>>>> Caused by: Exception executing consequence for rule "event handler:
>>>>>>>>> Asset Dimension Impact restored. Send emails" in
>>>>>>>>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
>>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
>> yet
>>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
>>>>>>>>> at
>>>>>>>>> 
>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
>>>>>>>>> at
>>>>>>>>> 
>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
>>>>>>>>> at
>>>>>>>>> 
>> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
>>>>>>>>> ... 73 more
>>>>>>>>> Caused by: java.lang.RuntimeException:
>>>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
>> yet
>>>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
>>>>>>>>> at
>>>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>>>>>>>>> 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:361)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
>>>>>>>>> Source)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
>>>>>>>>> Source)
>>>>>>>>> at
>>>>>>>>> 
>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
>>>>>>>>> ... 91 more
>>>>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
>>>>> Object
>>>>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>>>>>>>> ... 184 more
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>> 
>> 


Re: IsisException: Object not yet known to Isis

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Hi Oscar,
glad that sorted it out.  Yes, let's use that as the fix.  Are you happy to
raise the ticket and apply the patch?
Cheers
Dan


On 21 December 2013 14:57, GESCONSULTOR - Óscar Bou
<o....@gesconsultor.com>wrote:

> Hi, Dan.
>
> Seems it was that annotation (dependentElement) and it was properly solved
> by changing this:
>
> void ensureRootObject(final PersistenceCapable pojo) {
>     final ObjectAdapter adapter =
> getAdapterManager().getAdapterFor(pojo);
>     if(adapter == null) {
>         throw new IsisException(MessageFormat.format("Object not yet
> known to Isis: {0}", pojo));
>     }
>
> to this:
>
> void ensureRootObject(final PersistenceCapable pojo) {
>     final ObjectAdapter adapter =
> getAdapterManager().adapterFor(pojo);
>     if(adapter == null) {
>         throw new IsisException(MessageFormat.format("Object not yet
> known to Isis: {0}", pojo));
>     }
>
>
> Should it be updated on Isis?
>
>
>
>
> El 13/12/2013, a las 18:36, GESCONSULTOR - Óscar Bou <
> o.bou@gesconsultor.com> escribió:
>
> >
> > Just to clarify to anyone seeing this code, I've noticed there was some
> legacy code on this Entity (the Programming Model's addTo removeFrom).
> >
> > As it's not currently needed (due to JDO's managed relationships) I've
> deleted it.
> >
> > Thanks again,
> >
> > Oscar
> >
> >
> >
> > El 13/12/2013, a las 18:23, Dan Haywood <da...@haywood-associates.co.uk>
> escribió:
> >
> >> It could be the (... dependentElement = "true") bit.  I don't think we
> are
> >> using dependent objects in Estatio, which might be a reason we haven't
> seen
> >> this issue.
> >>
> >> You could also try temporarily removing that annotation.  It might
> change
> >> your schema, so obviously only something to do running under HSQLDB.
> >>
> >> Cheers
> >> Dan
> >>
> >>
> >>
> >>
> >>
> >> On 13 December 2013 17:19, GESCONSULTOR - Óscar Bou
> >> <o....@gesconsultor.com>wrote:
> >>
> >>> Not being able to reproduce it now, as I need one system administrator
> >>> that has just left until Monday.
> >>>
> >>> Those entities are "part" of a Scale (inside a Collection), and are
> lazy
> >>> loaded due to that, I think.
> >>>
> >>> They have the following code:
> >>>
> >>> @PersistenceCapable
> >>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> >>> public class TimeScale extends AbstractScale {
> >>>
> >>>   // {{ TimeScaleLevels (Collection)
> >>>   @Persistent(mappedBy = "timeScale", dependentElement = "true")
> >>>   private SortedSet<PointInTime> timeScaleLevels = new
> >>> TreeSet<PointInTime>();
> >>>
> >>>   @MemberOrder(sequence = "1")
> >>>   public SortedSet<PointInTime> getTimeScaleLevels() {
> >>>       return this.timeScaleLevels;
> >>>   }
> >>>
> >>>   public void setTimeScaleLevels(final SortedSet<PointInTime>
> >>> timeScaleLevels) {
> >>>       this.timeScaleLevels = timeScaleLevels;
> >>>   }
> >>>
> >>>   @MemberOrder(name = "timeScaleLevels", sequence = "10")
> >>>   public TimeScale insertIntoTimeScaleLevels(final PointInTime
> >>> timeScaleLevel) {
> >>>       this.addToTimeScaleLevels(timeScaleLevel);
> >>>       return this;
> >>>   }
> >>>
> >>>   // Programming model.
> >>>   public void addToTimeScaleLevels(final PointInTime timeScaleLevel) {
> >>>       // check for no-op
> >>>       if ((timeScaleLevel == null) ||
> >>> this.getTimeScaleLevels().contains(timeScaleLevel)) {
> >>>           return;
> >>>       }
> >>>       // associate new
> >>>       this.getTimeScaleLevels().add(timeScaleLevel);
> >>>       // additional business logic
> >>>       this.onAddToTimeScaleLevels(timeScaleLevel);
> >>>   }
> >>>
> >>>   // Action.
> >>>   @MemberOrder(name = "timeScaleLevels", sequence = "20")
> >>>   public TimeScale deleteFromTimeScaleLevels(final PointInTime
> >>> timeScaleLevel) {
> >>>       this.removeFromTimeScaleLevels(timeScaleLevel);
> >>>       return this;
> >>>   }
> >>>
> >>>   // Programming model.
> >>>   public void removeFromTimeScaleLevels(final PointInTime
> >>> timeScaleLevel) {
> >>>       // check for no-op
> >>>       if ((timeScaleLevel == null) ||
> >>> !this.getTimeScaleLevels().contains(timeScaleLevel)) {
> >>>           return;
> >>>       }
> >>>       // dissociate existing
> >>>       this.getTimeScaleLevels().remove(timeScaleLevel);
> >>>       // additional business logic
> >>>       this.onRemoveFromTimeScaleLevels(timeScaleLevel);
> >>>   }
> >>>
> >>>   protected void onAddToTimeScaleLevels(final PointInTime
> >>> timeScaleLevel) {
> >>>   }
> >>>
> >>>   protected void onRemoveFromTimeScaleLevels(final PointInTime
> >>> timeScaleLevel) {
> >>>   }
> >>>
> >>>   // }}
> >>>
> >>>   @SuppressWarnings("unchecked")
> >>>   @Override
> >>>   protected <E extends AbstractScaleLevel> SortedSet<E>
> >>> internalGetElements() {
> >>>       return (SortedSet<E>) this.timeScaleLevels;
> >>>   }
> >>>
> >>>   public PointInTime createLevel(@Named("Name") final String name,
> >>> @Named("Description") @Optional final String description, @Named("Time
> >>> Lapse Duration") final BigDecimal timelapseDuration, @Named("Time Lapse
> >>> Unit") final StandardTimeUnit timelapseUnit) {
> >>>
> >>>       return this.wrap(this.timeScales).createScaleLevel(this, name,
> >>> description, StandardTimeUnit.HOURS.convert(timelapseDuration,
> >>> timelapseUnit), timelapseUnit);
> >>>   }
> >>>
> >>>   // {{ levelForPointInTime (action)
> >>>   @Hidden
> >>>   @MemberOrder(sequence = "1")
> >>>   public PointInTime levelForPointInTime(final BigDecimal pointInTime,
> >>> final StandardTimeUnit pointInTimeUnits) {
> >>>       return (PointInTime)
> >>> this.levelForValue(StandardTimeUnit.HOURS.convert(pointInTime,
> >>> pointInTimeUnits));
> >>>   }
> >>>
> >>>   // }}
> >>>
> >>>   // {{ injected: TimeScales
> >>>   private TimeScales timeScales;
> >>>
> >>>   public void setTimeScales(final TimeScales timeScales) {
> >>>       this.timeScales = timeScales;
> >>>   }
> >>>   // }}
> >>>
> >>>
> >>>
> >>>
> >>>
> -------------------------------------------------------------------------------------------------------------------
> >>>
> >>>
> >>> @PersistenceCapable
> >>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> >>> public class PointInTime extends AbstractScaleLevelBin {
> >>>
> >>>   // {{ TimeScale (property)
> >>>   private TimeScale timeScale;
> >>>
> >>>   @Column(allowsNull = "false")
> >>>   @MemberOrder(sequence = "1")
> >>>   public TimeScale getTimeScale() {
> >>>       return this.timeScale;
> >>>   }
> >>>
> >>>   public void setTimeScale(final TimeScale timeScale) {
> >>>       this.timeScale = timeScale;
> >>>   }
> >>>
> >>>   // }}
> >>>
> >>>   // {{ TimeLapseDuration (property)
> >>>   private BigDecimal timeLapseDuration;
> >>>
> >>>   @Disabled
> >>>   @Column(allowsNull = "false")
> >>>   @MemberOrder(sequence = "1")
> >>>   public BigDecimal getTimeLapseDuration() {
> >>>       return this.timeLapseDuration;
> >>>   }
> >>>
> >>>   public void setTimeLapseDuration(final BigDecimal timeLapseDuration)
> {
> >>>       this.timeLapseDuration = timeLapseDuration;
> >>>   }
> >>>
> >>>   public void modifyTimeLapseDuration(final BigDecimal
> >>> timeLapseDuration) {
> >>>       final BigDecimal currentTimeLapseDuration =
> >>> this.getTimeLapseDuration();
> >>>       // check for no-op
> >>>       if ((timeLapseDuration == null) ||
> >>> timeLapseDuration.equals(currentTimeLapseDuration)) {
> >>>           return;
> >>>       }
> >>>       // associate new
> >>>       this.setTimeLapseDuration(timeLapseDuration);
> >>>       // additional business logic
> >>>       this.onModifyTimeLapseDuration(currentTimeLapseDuration,
> >>> timeLapseDuration);
> >>>   }
> >>>
> >>>   public void clearTimeLapseDuration() {
> >>>       final BigDecimal currentTimeLapseDuration =
> >>> this.getTimeLapseDuration();
> >>>       // check for no-op
> >>>       if (currentTimeLapseDuration == null) {
> >>>           return;
> >>>       }
> >>>       // dissociate existing
> >>>       this.setTimeLapseDuration(null);
> >>>       // additional business logic
> >>>       this.onClearTimeLapseDuration(currentTimeLapseDuration);
> >>>   }
> >>>
> >>>   protected void onModifyTimeLapseDuration(final BigDecimal
> >>> oldTimeLapseDuration, final BigDecimal newTimeLapseDuration) {
> >>>
> >>>       if ((newTimeLapseDuration != null) && (this.getTimeLapseUnit() !=
> >>> null)) {
> >>>
> >>> this.setValue(StandardTimeUnit.HOURS.convert(this.timeLapseDuration,
> >>> this.timeLapseUnit));
> >>>       } else {
> >>>           this.setValue(null);
> >>>       }
> >>>
> >>>   }
> >>>
> >>>   protected void onClearTimeLapseDuration(final BigDecimal
> >>> oldTimeLapseDuration) {
> >>>
> >>>       this.setValue(null);
> >>>
> >>>   }
> >>>
> >>>   // }}
> >>>
> >>>   // {{ TimeLapseUnit (property)
> >>>   private StandardTimeUnit timeLapseUnit;
> >>>
> >>>   @Disabled
> >>>   @Column(allowsNull = "false")
> >>>   @MemberOrder(sequence = "1")
> >>>   public StandardTimeUnit getTimeLapseUnit() {
> >>>       return this.timeLapseUnit;
> >>>   }
> >>>
> >>>   public void setTimeLapseUnit(final StandardTimeUnit timeLapseUnit) {
> >>>       this.timeLapseUnit = timeLapseUnit;
> >>>   }
> >>>
> >>>   // }}
> >>>
> >>>   // {{ assignTimeLapse (action)
> >>>   @MemberOrder(sequence = "1")
> >>>   public void assignTimeLapse(@Named("Time Lapse - Duration") final
> >>> BigDecimal duration, @Named("Time Lapse - Unit") final StandardTimeUnit
> >>> standardTimeUnit) {
> >>>
> >>>       this.setTimeLapseDuration(duration);
> >>>       this.setTimeLapseUnit(standardTimeUnit);
> >>>       this.setValue(StandardTimeUnit.HOURS.convert(duration,
> >>> standardTimeUnit));
> >>>
> >>>   }
> >>>
> >>>   // }}
> >>>
> >>>   /*
> >>>    * (non-Javadoc)
> >>>    *
> >>>    * @see
> >>>    *
> >>> com.xms.framework.risk.criteria.api.domain.ScaleLevel#isValueIncluded
> >>>    * (java.lang.Object)
> >>>    */
> >>>   @Override
> >>>   @Programmatic
> >>>   public Boolean isValueIncluded(final BigDecimal value) {
> >>>       // The equals() method for BigDecimals fails when they don't have
> >>> the
> >>>       // same scale. This is the proper way. See:
> >>>       //
> >>>
> http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
> >>>       if ((this.getValue() == null) ||
> (this.getValue().compareTo(value)
> >>> < 0)) {
> >>>           return false;
> >>>       } else {
> >>>           final AbstractScaleLevel lowerLevel =
> >>> this.getScale().lowerLevel(this);
> >>>           if (lowerLevel == null) {
> >>>               return true;
> >>>           } else if (lowerLevel.getValue().compareTo(value) > 0) {
> >>>               return true;
> >>>           } else {
> >>>               return false;
> >>>           }
> >>>       }
> >>>   }
> >>>
> >>>   @Override
> >>>   @NotPersisted
> >>>   @NotPersistent
> >>>   @Hidden
> >>>   public AbstractScale getScale() {
> >>>       return this.getTimeScale();
> >>>   }
> >>>
> >>>   @Override
> >>>   public void setScale(final AbstractScale scale) {
> >>>       this.timeScale = (TimeScale) scale;
> >>>   }
> >>>
> >>>   public String disableValue() {
> >>>       return "When you enter a Duration and a Time Unit the value will
> >>> automatically be the equivalent number of Hours";
> >>>   }
> >>>
> >>> }
> >>>
> >>>
> >>>
> >>> HTH,
> >>>
> >>> Oscar
> >>>
> >>>
> >>>
> >>>
> >>> El 13/12/2013, a las 17:58, Dan Haywood <da...@haywood-associates.co.uk>
> >>> escribió:
> >>>
> >>>> It is, perhaps, possible that the object not yet mapped is already
> >>>> persisted... perhaps it's being loaded lazily earlier on somehow, and
> >>> isn't
> >>>> being picked up by the synchronizer.
> >>>>
> >>>> Can you put a break point at the ensureRootLogging(...) when it throws
> >>> the
> >>>> exception, and copy the full stack trace out?
> >>>>
> >>>> Also, there may be a quick fix (though it's a bit hacky; it'd be nice
> to
> >>>> understand why this is breaking).  Even so, to apply that possible
> >>>> fix/hack, in ensureRootLObject(...), change the call to
> >>>> "getAdapterFor(...)" to instead call "adapterFor(...)"; this latter
> >>> method
> >>>> will create the adapter if it's not there.
> >>>>
> >>>> Dan
> >>>>
> >>>>
> >>>>
> >>>> On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
> >>>> <o....@gesconsultor.com>wrote:
> >>>>
> >>>>> Thanks a lot, Dan.
> >>>>>
> >>>>> This object is:  [value=1.000000000000000,  [name=1 hour,
> >>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>
> >>>>> That "PointInTime" was initially created through a Fixture - on a
> past
> >>>>> execution -, and currently loaded from the database through a
> repository
> >>>>> call.
> >>>>>
> >>>>> The code for the repository's method, "findByPropMultiTenant" is the
> >>> next
> >>>>> one:
> >>>>>
> >>>>>  @Programmatic
> >>>>>  public <S extends AbstractXMSDomainObject> List<S>
> >>>>> findByPropMultiTenant(final String tenantId, final Class<S> clazz,
> final
> >>>>> String whereClause, final Integer firstResult, final Integer
> maxResults,
> >>>>> final String orderClause) {
> >>>>>      return
> >>>>> IsisContext.getTransactionManager().executeWithinTransaction(new
> >>>>> TransactionalClosureWithReturnAbstract<List<S>>() {
> >>>>>
> >>>>>          @Override
> >>>>>          public List<S> execute() {
> >>>>>              return
> >>>>>
> >>>
> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
> >>>>> clazz, whereClause, firstResult, maxResults, orderClause);
> >>>>>          }
> >>>>>
> >>>>>          @Override
> >>>>>          public void onFailure() {
> >>>>>
> >>>>>          }
> >>>>>      });
> >>>>>
> >>>>>  }
> >>>>>
> >>>>>  @SuppressWarnings("unchecked")
> >>>>>  @Programmatic
> >>>>>  private <S extends AbstractXMSDomainObject> List<S>
> >>>>> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz,
> >>> final
> >>>>> String whereClause, final Integer firstResult, final Integer
> maxResults,
> >>>>> final String orderClause) {
> >>>>>
> >>>>>      // Ensure any newly persisted objects are saved to the object
> >>> store
> >>>>>      // before executing the query.
> >>>>>      this.getContainer().flush();
> >>>>>
> >>>>>      // See this for examples:
> >>>>>      //
> >>>>>
> >>>
> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
> >>>>>      final Query query =
> >>>>> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
> >>>>>
> >>>>>      // Always add the Tenant filter.
> >>>>>      String filter = String.format("tenantId == '%s'", tenantId);
> >>>>>      if ((whereClause != null) && (whereClause.trim().length() != 0))
> >>> {
> >>>>>          filter = filter.concat(" && ").concat(whereClause);
> >>>>>      }
> >>>>>      query.setFilter(filter);
> >>>>>
> >>>>>      query.setRange(this.firstResultToLong(firstResult),
> >>>>> this.maxResultsToLong(maxResults));
> >>>>>      final List<S> result = (List<S>) query.execute();
> >>>>>      return result;
> >>>>>  }
> >>>>>
> >>>>>
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> Oscar
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> El 13/12/2013, a las 17:15, Dan Haywood <
> dan@haywood-associates.co.uk>
> >>>>> escribió:
> >>>>>
> >>>>>> Hi Oscar,
> >>>>>> the stack trace is somewhat truncated, unfortunately, but I think I
> can
> >>>>>> approximately work it out.
> >>>>>>
> >>>>>> *It starts to get useful down at the very end, in the last nested
> >>>>> block...*
> >>>>>>
> >>>>>>
> >>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
> >>> Object
> >>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>>
> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *From what I can see, there's a repository query...*
> >>>>>>
> >>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> >>>>>> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
> >>>>>> oryAndFactory.java:509)
> >>>>>> at
> >>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> >>>>>> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
> >>>>>> oryAndFactory.java:502)
> >>>>>> at
> >>>>>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
> >>>>>>
> >>>
> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
> >>>>>> jectRepositoryAndFactory.java:16)
> >>>>>> at
> >>>>>> com.xms.framework.monitoring.domain.model.architecture.
> >>>>>> AssetsMonitoringInformation.monitoringInformation(
> >>>>>> AssetsMonitoringInformation.java:12)
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *which (as they all do) causes a flush of the xactn, which in turn
> >>> causes
> >>>>>> some queued up "create object" commands to be executed...*
> >>>>>>
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
> >>>>>>
> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
> >>>>>> .java:54)
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
> >>>>>> executeCommands(DataNucleusObjectStore.java:361)
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *DataNucleus then does its persist...*
> >>>>>>
> >>>>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(
> >>>>>> JDOStateManager.java:3779)
> >>>>>> at
> >>>>>> org.datanucleus.state.JDOStateManager.makePersistent(
> >>>>>> JDOStateManager.java:3752)
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *and calls Isis through a callback:*
> >>>>>>
> >>>>>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
> >>>>>> JDOCallbackHandler.java:158)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *Isis then attempts to synchronize its state with that of
> DataNucleus,
> >>>>> and
> >>>>>> fails fast because it's being asked to locate an object that it has
> >>> never
> >>>>>> seen before:*
> >>>>>>
> >>>>>> Caused by: java.lang.RuntimeException:
> >>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> yet
> >>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >>>>>> at
> >>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >>>>>>
> >>>>>>
> >>>>>> *The actual exception is thrown by
> >>>>> FrameworkSynchronizer#ensureRootObject*
> >>>>>>
> >>>>>> void ensureRootObject(final PersistenceCapable pojo) {
> >>>>>>     final ObjectAdapter adapter =
> >>>>>> getAdapterManager().getAdapterFor(pojo);
> >>>>>>     if(adapter == null) {
> >>>>>>         throw new IsisException(MessageFormat.format("Object not yet
> >>>>>> known to Isis: {0}", pojo));
> >>>>>>     }
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *This is a "fail fast" because, I think, it ought not to happen...
> if
> >>> the
> >>>>>> object was created using
> >>>>>> DomainObjectContainer#createTransientInstance(...), then the pojo's
> >>>>> adapter
> >>>>>> would be in the AdapterManager.*
> >>>>>>
> >>>>>> Could you put a break point on the failing line (in
> ensureRootObject)
> >>> and
> >>>>>> find out which object is not mapped, then see how that object is
> >>>>> originally
> >>>>>> instantiated (eg put a break point in that object's constructor and
> >>> look
> >>>>>> down the stacktrace).
> >>>>>>
> >>>>>>
> >>>>>> Dan
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
> >>>>>> <o....@gesconsultor.com>wrote:
> >>>>>>
> >>>>>>>
> >>>>>>> Hi to all.
> >>>>>>>
> >>>>>>> While testing a part of our app, the following exception has been
> >>>>> raised.
> >>>>>>> It blocks the execution of any logic.
> >>>>>>>
> >>>>>>> Not sure about if it's a framework error or perhaps something
> >>> regarding
> >>>>>>> Isis Session management.
> >>>>>>>
> >>>>>>> Any help, please?
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>> Oscar
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
> >>>>>>> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
> >>>>>>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
> >>>>>>> executing consequence for rule "event handler: Asset Dimension
> Impact
> >>>>>>> restored. Send emails" in com.xms.framework.monitoring.rules:
> >>>>>>> java.lang.RuntimeException:
> >>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> yet
> >>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>> com.xms.framework.api.exception.XMSRuntimeException: Exception
> >>> executing
> >>>>>>> consequence for rule "event handler: Asset Dimension Impact
> restored.
> >>>>>>> Send emails" in com.xms.framework.monitoring.rules:
> >>>>>>> java.lang.RuntimeException:
> >>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> yet
> >>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
> >>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
> >>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> >>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >>>>>>> at
> >>>>>>>
> >>>>>
> >>>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> >>>>>>> at
> >>>>>>>
> >>>>>
> >>>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
> >>>>>>> at
> >>>>>>>
> >>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> >>>>>>> at java.lang.Thread.run(Thread.java:662)
> >>>>>>> Caused by: Exception executing consequence for rule "event handler:
> >>>>>>> Asset Dimension Impact restored. Send emails" in
> >>>>>>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
> >>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> yet
> >>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
> >>>>>>> at
> >>>>>>>
> >>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
> >>>>>>> at
> >>>>>>>
> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> >>>>>>> at
> >>>>>>>
> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
> >>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
> >>>>>>> ... 73 more
> >>>>>>> Caused by: java.lang.RuntimeException:
> >>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not
> yet
> >>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
> >>>>>>> at
> >>>>>>>
> >>>
> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
> >>>>>>> at
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
> >>>>>>> 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:361)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
> >>>>>>> Source)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
> >>>>>>> Source)
> >>>>>>> at
> >>>>>>>
> >>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> >>>>>>> ... 91 more
> >>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
> >>> Object
> >>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>>>>
> >>>>>
> >>>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >>>>>>> at
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >>>>>>> ... 184 more
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>>>
> >>>
> >>>
> >
>
>

Re: IsisException: Object not yet known to Isis

Posted by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com>.
Hi, Dan.

Seems it was that annotation (dependentElement) and it was properly solved by changing this:

void ensureRootObject(final PersistenceCapable pojo) {
    final ObjectAdapter adapter =
getAdapterManager().getAdapterFor(pojo);
    if(adapter == null) {
        throw new IsisException(MessageFormat.format("Object not yet
known to Isis: {0}", pojo));
    }

to this:

void ensureRootObject(final PersistenceCapable pojo) {
    final ObjectAdapter adapter =
getAdapterManager().adapterFor(pojo);
    if(adapter == null) {
        throw new IsisException(MessageFormat.format("Object not yet
known to Isis: {0}", pojo));
    }


Should it be updated on Isis?




El 13/12/2013, a las 18:36, GESCONSULTOR - Óscar Bou <o....@gesconsultor.com> escribió:

> 
> Just to clarify to anyone seeing this code, I've noticed there was some legacy code on this Entity (the Programming Model's addTo removeFrom).
> 
> As it's not currently needed (due to JDO's managed relationships) I've deleted it.
> 
> Thanks again,
> 
> Oscar
> 
> 
> 
> El 13/12/2013, a las 18:23, Dan Haywood <da...@haywood-associates.co.uk> escribió:
> 
>> It could be the (... dependentElement = "true") bit.  I don't think we are
>> using dependent objects in Estatio, which might be a reason we haven't seen
>> this issue.
>> 
>> You could also try temporarily removing that annotation.  It might change
>> your schema, so obviously only something to do running under HSQLDB.
>> 
>> Cheers
>> Dan
>> 
>> 
>> 
>> 
>> 
>> On 13 December 2013 17:19, GESCONSULTOR - Óscar Bou
>> <o....@gesconsultor.com>wrote:
>> 
>>> Not being able to reproduce it now, as I need one system administrator
>>> that has just left until Monday.
>>> 
>>> Those entities are "part" of a Scale (inside a Collection), and are lazy
>>> loaded due to that, I think.
>>> 
>>> They have the following code:
>>> 
>>> @PersistenceCapable
>>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
>>> public class TimeScale extends AbstractScale {
>>> 
>>>   // {{ TimeScaleLevels (Collection)
>>>   @Persistent(mappedBy = "timeScale", dependentElement = "true")
>>>   private SortedSet<PointInTime> timeScaleLevels = new
>>> TreeSet<PointInTime>();
>>> 
>>>   @MemberOrder(sequence = "1")
>>>   public SortedSet<PointInTime> getTimeScaleLevels() {
>>>       return this.timeScaleLevels;
>>>   }
>>> 
>>>   public void setTimeScaleLevels(final SortedSet<PointInTime>
>>> timeScaleLevels) {
>>>       this.timeScaleLevels = timeScaleLevels;
>>>   }
>>> 
>>>   @MemberOrder(name = "timeScaleLevels", sequence = "10")
>>>   public TimeScale insertIntoTimeScaleLevels(final PointInTime
>>> timeScaleLevel) {
>>>       this.addToTimeScaleLevels(timeScaleLevel);
>>>       return this;
>>>   }
>>> 
>>>   // Programming model.
>>>   public void addToTimeScaleLevels(final PointInTime timeScaleLevel) {
>>>       // check for no-op
>>>       if ((timeScaleLevel == null) ||
>>> this.getTimeScaleLevels().contains(timeScaleLevel)) {
>>>           return;
>>>       }
>>>       // associate new
>>>       this.getTimeScaleLevels().add(timeScaleLevel);
>>>       // additional business logic
>>>       this.onAddToTimeScaleLevels(timeScaleLevel);
>>>   }
>>> 
>>>   // Action.
>>>   @MemberOrder(name = "timeScaleLevels", sequence = "20")
>>>   public TimeScale deleteFromTimeScaleLevels(final PointInTime
>>> timeScaleLevel) {
>>>       this.removeFromTimeScaleLevels(timeScaleLevel);
>>>       return this;
>>>   }
>>> 
>>>   // Programming model.
>>>   public void removeFromTimeScaleLevels(final PointInTime
>>> timeScaleLevel) {
>>>       // check for no-op
>>>       if ((timeScaleLevel == null) ||
>>> !this.getTimeScaleLevels().contains(timeScaleLevel)) {
>>>           return;
>>>       }
>>>       // dissociate existing
>>>       this.getTimeScaleLevels().remove(timeScaleLevel);
>>>       // additional business logic
>>>       this.onRemoveFromTimeScaleLevels(timeScaleLevel);
>>>   }
>>> 
>>>   protected void onAddToTimeScaleLevels(final PointInTime
>>> timeScaleLevel) {
>>>   }
>>> 
>>>   protected void onRemoveFromTimeScaleLevels(final PointInTime
>>> timeScaleLevel) {
>>>   }
>>> 
>>>   // }}
>>> 
>>>   @SuppressWarnings("unchecked")
>>>   @Override
>>>   protected <E extends AbstractScaleLevel> SortedSet<E>
>>> internalGetElements() {
>>>       return (SortedSet<E>) this.timeScaleLevels;
>>>   }
>>> 
>>>   public PointInTime createLevel(@Named("Name") final String name,
>>> @Named("Description") @Optional final String description, @Named("Time
>>> Lapse Duration") final BigDecimal timelapseDuration, @Named("Time Lapse
>>> Unit") final StandardTimeUnit timelapseUnit) {
>>> 
>>>       return this.wrap(this.timeScales).createScaleLevel(this, name,
>>> description, StandardTimeUnit.HOURS.convert(timelapseDuration,
>>> timelapseUnit), timelapseUnit);
>>>   }
>>> 
>>>   // {{ levelForPointInTime (action)
>>>   @Hidden
>>>   @MemberOrder(sequence = "1")
>>>   public PointInTime levelForPointInTime(final BigDecimal pointInTime,
>>> final StandardTimeUnit pointInTimeUnits) {
>>>       return (PointInTime)
>>> this.levelForValue(StandardTimeUnit.HOURS.convert(pointInTime,
>>> pointInTimeUnits));
>>>   }
>>> 
>>>   // }}
>>> 
>>>   // {{ injected: TimeScales
>>>   private TimeScales timeScales;
>>> 
>>>   public void setTimeScales(final TimeScales timeScales) {
>>>       this.timeScales = timeScales;
>>>   }
>>>   // }}
>>> 
>>> 
>>> 
>>> 
>>> -------------------------------------------------------------------------------------------------------------------
>>> 
>>> 
>>> @PersistenceCapable
>>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
>>> public class PointInTime extends AbstractScaleLevelBin {
>>> 
>>>   // {{ TimeScale (property)
>>>   private TimeScale timeScale;
>>> 
>>>   @Column(allowsNull = "false")
>>>   @MemberOrder(sequence = "1")
>>>   public TimeScale getTimeScale() {
>>>       return this.timeScale;
>>>   }
>>> 
>>>   public void setTimeScale(final TimeScale timeScale) {
>>>       this.timeScale = timeScale;
>>>   }
>>> 
>>>   // }}
>>> 
>>>   // {{ TimeLapseDuration (property)
>>>   private BigDecimal timeLapseDuration;
>>> 
>>>   @Disabled
>>>   @Column(allowsNull = "false")
>>>   @MemberOrder(sequence = "1")
>>>   public BigDecimal getTimeLapseDuration() {
>>>       return this.timeLapseDuration;
>>>   }
>>> 
>>>   public void setTimeLapseDuration(final BigDecimal timeLapseDuration) {
>>>       this.timeLapseDuration = timeLapseDuration;
>>>   }
>>> 
>>>   public void modifyTimeLapseDuration(final BigDecimal
>>> timeLapseDuration) {
>>>       final BigDecimal currentTimeLapseDuration =
>>> this.getTimeLapseDuration();
>>>       // check for no-op
>>>       if ((timeLapseDuration == null) ||
>>> timeLapseDuration.equals(currentTimeLapseDuration)) {
>>>           return;
>>>       }
>>>       // associate new
>>>       this.setTimeLapseDuration(timeLapseDuration);
>>>       // additional business logic
>>>       this.onModifyTimeLapseDuration(currentTimeLapseDuration,
>>> timeLapseDuration);
>>>   }
>>> 
>>>   public void clearTimeLapseDuration() {
>>>       final BigDecimal currentTimeLapseDuration =
>>> this.getTimeLapseDuration();
>>>       // check for no-op
>>>       if (currentTimeLapseDuration == null) {
>>>           return;
>>>       }
>>>       // dissociate existing
>>>       this.setTimeLapseDuration(null);
>>>       // additional business logic
>>>       this.onClearTimeLapseDuration(currentTimeLapseDuration);
>>>   }
>>> 
>>>   protected void onModifyTimeLapseDuration(final BigDecimal
>>> oldTimeLapseDuration, final BigDecimal newTimeLapseDuration) {
>>> 
>>>       if ((newTimeLapseDuration != null) && (this.getTimeLapseUnit() !=
>>> null)) {
>>> 
>>> this.setValue(StandardTimeUnit.HOURS.convert(this.timeLapseDuration,
>>> this.timeLapseUnit));
>>>       } else {
>>>           this.setValue(null);
>>>       }
>>> 
>>>   }
>>> 
>>>   protected void onClearTimeLapseDuration(final BigDecimal
>>> oldTimeLapseDuration) {
>>> 
>>>       this.setValue(null);
>>> 
>>>   }
>>> 
>>>   // }}
>>> 
>>>   // {{ TimeLapseUnit (property)
>>>   private StandardTimeUnit timeLapseUnit;
>>> 
>>>   @Disabled
>>>   @Column(allowsNull = "false")
>>>   @MemberOrder(sequence = "1")
>>>   public StandardTimeUnit getTimeLapseUnit() {
>>>       return this.timeLapseUnit;
>>>   }
>>> 
>>>   public void setTimeLapseUnit(final StandardTimeUnit timeLapseUnit) {
>>>       this.timeLapseUnit = timeLapseUnit;
>>>   }
>>> 
>>>   // }}
>>> 
>>>   // {{ assignTimeLapse (action)
>>>   @MemberOrder(sequence = "1")
>>>   public void assignTimeLapse(@Named("Time Lapse - Duration") final
>>> BigDecimal duration, @Named("Time Lapse - Unit") final StandardTimeUnit
>>> standardTimeUnit) {
>>> 
>>>       this.setTimeLapseDuration(duration);
>>>       this.setTimeLapseUnit(standardTimeUnit);
>>>       this.setValue(StandardTimeUnit.HOURS.convert(duration,
>>> standardTimeUnit));
>>> 
>>>   }
>>> 
>>>   // }}
>>> 
>>>   /*
>>>    * (non-Javadoc)
>>>    *
>>>    * @see
>>>    *
>>> com.xms.framework.risk.criteria.api.domain.ScaleLevel#isValueIncluded
>>>    * (java.lang.Object)
>>>    */
>>>   @Override
>>>   @Programmatic
>>>   public Boolean isValueIncluded(final BigDecimal value) {
>>>       // The equals() method for BigDecimals fails when they don't have
>>> the
>>>       // same scale. This is the proper way. See:
>>>       //
>>> http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
>>>       if ((this.getValue() == null) || (this.getValue().compareTo(value)
>>> < 0)) {
>>>           return false;
>>>       } else {
>>>           final AbstractScaleLevel lowerLevel =
>>> this.getScale().lowerLevel(this);
>>>           if (lowerLevel == null) {
>>>               return true;
>>>           } else if (lowerLevel.getValue().compareTo(value) > 0) {
>>>               return true;
>>>           } else {
>>>               return false;
>>>           }
>>>       }
>>>   }
>>> 
>>>   @Override
>>>   @NotPersisted
>>>   @NotPersistent
>>>   @Hidden
>>>   public AbstractScale getScale() {
>>>       return this.getTimeScale();
>>>   }
>>> 
>>>   @Override
>>>   public void setScale(final AbstractScale scale) {
>>>       this.timeScale = (TimeScale) scale;
>>>   }
>>> 
>>>   public String disableValue() {
>>>       return "When you enter a Duration and a Time Unit the value will
>>> automatically be the equivalent number of Hours";
>>>   }
>>> 
>>> }
>>> 
>>> 
>>> 
>>> HTH,
>>> 
>>> Oscar
>>> 
>>> 
>>> 
>>> 
>>> El 13/12/2013, a las 17:58, Dan Haywood <da...@haywood-associates.co.uk>
>>> escribió:
>>> 
>>>> It is, perhaps, possible that the object not yet mapped is already
>>>> persisted... perhaps it's being loaded lazily earlier on somehow, and
>>> isn't
>>>> being picked up by the synchronizer.
>>>> 
>>>> Can you put a break point at the ensureRootLogging(...) when it throws
>>> the
>>>> exception, and copy the full stack trace out?
>>>> 
>>>> Also, there may be a quick fix (though it's a bit hacky; it'd be nice to
>>>> understand why this is breaking).  Even so, to apply that possible
>>>> fix/hack, in ensureRootLObject(...), change the call to
>>>> "getAdapterFor(...)" to instead call "adapterFor(...)"; this latter
>>> method
>>>> will create the adapter if it's not there.
>>>> 
>>>> Dan
>>>> 
>>>> 
>>>> 
>>>> On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
>>>> <o....@gesconsultor.com>wrote:
>>>> 
>>>>> Thanks a lot, Dan.
>>>>> 
>>>>> This object is:  [value=1.000000000000000,  [name=1 hour,
>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>> 
>>>>> That "PointInTime" was initially created through a Fixture - on a past
>>>>> execution -, and currently loaded from the database through a repository
>>>>> call.
>>>>> 
>>>>> The code for the repository's method, "findByPropMultiTenant" is the
>>> next
>>>>> one:
>>>>> 
>>>>>  @Programmatic
>>>>>  public <S extends AbstractXMSDomainObject> List<S>
>>>>> findByPropMultiTenant(final String tenantId, final Class<S> clazz, final
>>>>> String whereClause, final Integer firstResult, final Integer maxResults,
>>>>> final String orderClause) {
>>>>>      return
>>>>> IsisContext.getTransactionManager().executeWithinTransaction(new
>>>>> TransactionalClosureWithReturnAbstract<List<S>>() {
>>>>> 
>>>>>          @Override
>>>>>          public List<S> execute() {
>>>>>              return
>>>>> 
>>> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
>>>>> clazz, whereClause, firstResult, maxResults, orderClause);
>>>>>          }
>>>>> 
>>>>>          @Override
>>>>>          public void onFailure() {
>>>>> 
>>>>>          }
>>>>>      });
>>>>> 
>>>>>  }
>>>>> 
>>>>>  @SuppressWarnings("unchecked")
>>>>>  @Programmatic
>>>>>  private <S extends AbstractXMSDomainObject> List<S>
>>>>> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz,
>>> final
>>>>> String whereClause, final Integer firstResult, final Integer maxResults,
>>>>> final String orderClause) {
>>>>> 
>>>>>      // Ensure any newly persisted objects are saved to the object
>>> store
>>>>>      // before executing the query.
>>>>>      this.getContainer().flush();
>>>>> 
>>>>>      // See this for examples:
>>>>>      //
>>>>> 
>>> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
>>>>>      final Query query =
>>>>> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
>>>>> 
>>>>>      // Always add the Tenant filter.
>>>>>      String filter = String.format("tenantId == '%s'", tenantId);
>>>>>      if ((whereClause != null) && (whereClause.trim().length() != 0))
>>> {
>>>>>          filter = filter.concat(" && ").concat(whereClause);
>>>>>      }
>>>>>      query.setFilter(filter);
>>>>> 
>>>>>      query.setRange(this.firstResultToLong(firstResult),
>>>>> this.maxResultsToLong(maxResults));
>>>>>      final List<S> result = (List<S>) query.execute();
>>>>>      return result;
>>>>>  }
>>>>> 
>>>>> 
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> Oscar
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> El 13/12/2013, a las 17:15, Dan Haywood <da...@haywood-associates.co.uk>
>>>>> escribió:
>>>>> 
>>>>>> Hi Oscar,
>>>>>> the stack trace is somewhat truncated, unfortunately, but I think I can
>>>>>> approximately work it out.
>>>>>> 
>>>>>> *It starts to get useful down at the very end, in the last nested
>>>>> block...*
>>>>>> 
>>>>>> 
>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
>>> Object
>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>> 
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> *From what I can see, there's a repository query...*
>>>>>> 
>>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>>>>> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
>>>>>> oryAndFactory.java:509)
>>>>>> at
>>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>>>>> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
>>>>>> oryAndFactory.java:502)
>>>>>> at
>>>>>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
>>>>>> 
>>> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
>>>>>> jectRepositoryAndFactory.java:16)
>>>>>> at
>>>>>> com.xms.framework.monitoring.domain.model.architecture.
>>>>>> AssetsMonitoringInformation.monitoringInformation(
>>>>>> AssetsMonitoringInformation.java:12)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> *which (as they all do) causes a flush of the xactn, which in turn
>>> causes
>>>>>> some queued up "create object" commands to be executed...*
>>>>>> 
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
>>>>>> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
>>>>>> .java:54)
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
>>>>>> executeCommands(DataNucleusObjectStore.java:361)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> *DataNucleus then does its persist...*
>>>>>> 
>>>>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(
>>>>>> JDOStateManager.java:3779)
>>>>>> at
>>>>>> org.datanucleus.state.JDOStateManager.makePersistent(
>>>>>> JDOStateManager.java:3752)
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> *and calls Isis through a callback:*
>>>>>> 
>>>>>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
>>>>>> JDOCallbackHandler.java:158)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> *Isis then attempts to synchronize its state with that of DataNucleus,
>>>>> and
>>>>>> fails fast because it's being asked to locate an object that it has
>>> never
>>>>>> seen before:*
>>>>>> 
>>>>>> Caused by: java.lang.RuntimeException:
>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>> 
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>>>> at
>>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>>>>> 
>>>>>> 
>>>>>> *The actual exception is thrown by
>>>>> FrameworkSynchronizer#ensureRootObject*
>>>>>> 
>>>>>> void ensureRootObject(final PersistenceCapable pojo) {
>>>>>>     final ObjectAdapter adapter =
>>>>>> getAdapterManager().getAdapterFor(pojo);
>>>>>>     if(adapter == null) {
>>>>>>         throw new IsisException(MessageFormat.format("Object not yet
>>>>>> known to Isis: {0}", pojo));
>>>>>>     }
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> *This is a "fail fast" because, I think, it ought not to happen... if
>>> the
>>>>>> object was created using
>>>>>> DomainObjectContainer#createTransientInstance(...), then the pojo's
>>>>> adapter
>>>>>> would be in the AdapterManager.*
>>>>>> 
>>>>>> Could you put a break point on the failing line (in ensureRootObject)
>>> and
>>>>>> find out which object is not mapped, then see how that object is
>>>>> originally
>>>>>> instantiated (eg put a break point in that object's constructor and
>>> look
>>>>>> down the stacktrace).
>>>>>> 
>>>>>> 
>>>>>> Dan
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
>>>>>> <o....@gesconsultor.com>wrote:
>>>>>> 
>>>>>>> 
>>>>>>> Hi to all.
>>>>>>> 
>>>>>>> While testing a part of our app, the following exception has been
>>>>> raised.
>>>>>>> It blocks the execution of any logic.
>>>>>>> 
>>>>>>> Not sure about if it's a framework error or perhaps something
>>> regarding
>>>>>>> Isis Session management.
>>>>>>> 
>>>>>>> Any help, please?
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> 
>>>>>>> Oscar
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
>>>>>>> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
>>>>>>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
>>>>>>> executing consequence for rule "event handler: Asset Dimension Impact
>>>>>>> restored. Send emails" in com.xms.framework.monitoring.rules:
>>>>>>> java.lang.RuntimeException:
>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>> 
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>> com.xms.framework.api.exception.XMSRuntimeException: Exception
>>> executing
>>>>>>> consequence for rule "event handler: Asset Dimension Impact restored.
>>>>>>> Send emails" in com.xms.framework.monitoring.rules:
>>>>>>> java.lang.RuntimeException:
>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>> 
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>>>> at
>>>>>>> 
>>>>> 
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>>>>>> at
>>>>>>> 
>>>>> 
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
>>>>>>> at
>>>>>>> 
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>>>> at java.lang.Thread.run(Thread.java:662)
>>>>>>> Caused by: Exception executing consequence for rule "event handler:
>>>>>>> Asset Dimension Impact restored. Send emails" in
>>>>>>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>> 
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
>>>>>>> at
>>>>>>> 
>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
>>>>>>> at
>>>>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
>>>>>>> at
>>>>>>> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
>>>>>>> ... 73 more
>>>>>>> Caused by: java.lang.RuntimeException:
>>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>> 
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
>>>>>>> at
>>>>>>> 
>>> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
>>>>>>> at
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>>>>>>> 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:361)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
>>>>>>> Source)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
>>>>>>> Source)
>>>>>>> at
>>>>>>> 
>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
>>>>>>> ... 91 more
>>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
>>> Object
>>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>>> 
>>>>> 
>>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>>>>> at
>>>>>>> 
>>>>>>> 
>>>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>>>>>> ... 184 more
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
> 


Re: IsisException: Object not yet known to Isis

Posted by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com>.
Just to clarify to anyone seeing this code, I've noticed there was some legacy code on this Entity (the Programming Model's addTo removeFrom).

As it's not currently needed (due to JDO's managed relationships) I've deleted it.

Thanks again,

Oscar



El 13/12/2013, a las 18:23, Dan Haywood <da...@haywood-associates.co.uk> escribió:

> It could be the (... dependentElement = "true") bit.  I don't think we are
> using dependent objects in Estatio, which might be a reason we haven't seen
> this issue.
> 
> You could also try temporarily removing that annotation.  It might change
> your schema, so obviously only something to do running under HSQLDB.
> 
> Cheers
> Dan
> 
> 
> 
> 
> 
> On 13 December 2013 17:19, GESCONSULTOR - Óscar Bou
> <o....@gesconsultor.com>wrote:
> 
>> Not being able to reproduce it now, as I need one system administrator
>> that has just left until Monday.
>> 
>> Those entities are "part" of a Scale (inside a Collection), and are lazy
>> loaded due to that, I think.
>> 
>> They have the following code:
>> 
>> @PersistenceCapable
>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
>> public class TimeScale extends AbstractScale {
>> 
>>    // {{ TimeScaleLevels (Collection)
>>    @Persistent(mappedBy = "timeScale", dependentElement = "true")
>>    private SortedSet<PointInTime> timeScaleLevels = new
>> TreeSet<PointInTime>();
>> 
>>    @MemberOrder(sequence = "1")
>>    public SortedSet<PointInTime> getTimeScaleLevels() {
>>        return this.timeScaleLevels;
>>    }
>> 
>>    public void setTimeScaleLevels(final SortedSet<PointInTime>
>> timeScaleLevels) {
>>        this.timeScaleLevels = timeScaleLevels;
>>    }
>> 
>>    @MemberOrder(name = "timeScaleLevels", sequence = "10")
>>    public TimeScale insertIntoTimeScaleLevels(final PointInTime
>> timeScaleLevel) {
>>        this.addToTimeScaleLevels(timeScaleLevel);
>>        return this;
>>    }
>> 
>>    // Programming model.
>>    public void addToTimeScaleLevels(final PointInTime timeScaleLevel) {
>>        // check for no-op
>>        if ((timeScaleLevel == null) ||
>> this.getTimeScaleLevels().contains(timeScaleLevel)) {
>>            return;
>>        }
>>        // associate new
>>        this.getTimeScaleLevels().add(timeScaleLevel);
>>        // additional business logic
>>        this.onAddToTimeScaleLevels(timeScaleLevel);
>>    }
>> 
>>    // Action.
>>    @MemberOrder(name = "timeScaleLevels", sequence = "20")
>>    public TimeScale deleteFromTimeScaleLevels(final PointInTime
>> timeScaleLevel) {
>>        this.removeFromTimeScaleLevels(timeScaleLevel);
>>        return this;
>>    }
>> 
>>    // Programming model.
>>    public void removeFromTimeScaleLevels(final PointInTime
>> timeScaleLevel) {
>>        // check for no-op
>>        if ((timeScaleLevel == null) ||
>> !this.getTimeScaleLevels().contains(timeScaleLevel)) {
>>            return;
>>        }
>>        // dissociate existing
>>        this.getTimeScaleLevels().remove(timeScaleLevel);
>>        // additional business logic
>>        this.onRemoveFromTimeScaleLevels(timeScaleLevel);
>>    }
>> 
>>    protected void onAddToTimeScaleLevels(final PointInTime
>> timeScaleLevel) {
>>    }
>> 
>>    protected void onRemoveFromTimeScaleLevels(final PointInTime
>> timeScaleLevel) {
>>    }
>> 
>>    // }}
>> 
>>    @SuppressWarnings("unchecked")
>>    @Override
>>    protected <E extends AbstractScaleLevel> SortedSet<E>
>> internalGetElements() {
>>        return (SortedSet<E>) this.timeScaleLevels;
>>    }
>> 
>>    public PointInTime createLevel(@Named("Name") final String name,
>> @Named("Description") @Optional final String description, @Named("Time
>> Lapse Duration") final BigDecimal timelapseDuration, @Named("Time Lapse
>> Unit") final StandardTimeUnit timelapseUnit) {
>> 
>>        return this.wrap(this.timeScales).createScaleLevel(this, name,
>> description, StandardTimeUnit.HOURS.convert(timelapseDuration,
>> timelapseUnit), timelapseUnit);
>>    }
>> 
>>    // {{ levelForPointInTime (action)
>>    @Hidden
>>    @MemberOrder(sequence = "1")
>>    public PointInTime levelForPointInTime(final BigDecimal pointInTime,
>> final StandardTimeUnit pointInTimeUnits) {
>>        return (PointInTime)
>> this.levelForValue(StandardTimeUnit.HOURS.convert(pointInTime,
>> pointInTimeUnits));
>>    }
>> 
>>    // }}
>> 
>>    // {{ injected: TimeScales
>>    private TimeScales timeScales;
>> 
>>    public void setTimeScales(final TimeScales timeScales) {
>>        this.timeScales = timeScales;
>>    }
>>    // }}
>> 
>> 
>> 
>> 
>> -------------------------------------------------------------------------------------------------------------------
>> 
>> 
>> @PersistenceCapable
>> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
>> public class PointInTime extends AbstractScaleLevelBin {
>> 
>>    // {{ TimeScale (property)
>>    private TimeScale timeScale;
>> 
>>    @Column(allowsNull = "false")
>>    @MemberOrder(sequence = "1")
>>    public TimeScale getTimeScale() {
>>        return this.timeScale;
>>    }
>> 
>>    public void setTimeScale(final TimeScale timeScale) {
>>        this.timeScale = timeScale;
>>    }
>> 
>>    // }}
>> 
>>    // {{ TimeLapseDuration (property)
>>    private BigDecimal timeLapseDuration;
>> 
>>    @Disabled
>>    @Column(allowsNull = "false")
>>    @MemberOrder(sequence = "1")
>>    public BigDecimal getTimeLapseDuration() {
>>        return this.timeLapseDuration;
>>    }
>> 
>>    public void setTimeLapseDuration(final BigDecimal timeLapseDuration) {
>>        this.timeLapseDuration = timeLapseDuration;
>>    }
>> 
>>    public void modifyTimeLapseDuration(final BigDecimal
>> timeLapseDuration) {
>>        final BigDecimal currentTimeLapseDuration =
>> this.getTimeLapseDuration();
>>        // check for no-op
>>        if ((timeLapseDuration == null) ||
>> timeLapseDuration.equals(currentTimeLapseDuration)) {
>>            return;
>>        }
>>        // associate new
>>        this.setTimeLapseDuration(timeLapseDuration);
>>        // additional business logic
>>        this.onModifyTimeLapseDuration(currentTimeLapseDuration,
>> timeLapseDuration);
>>    }
>> 
>>    public void clearTimeLapseDuration() {
>>        final BigDecimal currentTimeLapseDuration =
>> this.getTimeLapseDuration();
>>        // check for no-op
>>        if (currentTimeLapseDuration == null) {
>>            return;
>>        }
>>        // dissociate existing
>>        this.setTimeLapseDuration(null);
>>        // additional business logic
>>        this.onClearTimeLapseDuration(currentTimeLapseDuration);
>>    }
>> 
>>    protected void onModifyTimeLapseDuration(final BigDecimal
>> oldTimeLapseDuration, final BigDecimal newTimeLapseDuration) {
>> 
>>        if ((newTimeLapseDuration != null) && (this.getTimeLapseUnit() !=
>> null)) {
>> 
>> this.setValue(StandardTimeUnit.HOURS.convert(this.timeLapseDuration,
>> this.timeLapseUnit));
>>        } else {
>>            this.setValue(null);
>>        }
>> 
>>    }
>> 
>>    protected void onClearTimeLapseDuration(final BigDecimal
>> oldTimeLapseDuration) {
>> 
>>        this.setValue(null);
>> 
>>    }
>> 
>>    // }}
>> 
>>    // {{ TimeLapseUnit (property)
>>    private StandardTimeUnit timeLapseUnit;
>> 
>>    @Disabled
>>    @Column(allowsNull = "false")
>>    @MemberOrder(sequence = "1")
>>    public StandardTimeUnit getTimeLapseUnit() {
>>        return this.timeLapseUnit;
>>    }
>> 
>>    public void setTimeLapseUnit(final StandardTimeUnit timeLapseUnit) {
>>        this.timeLapseUnit = timeLapseUnit;
>>    }
>> 
>>    // }}
>> 
>>    // {{ assignTimeLapse (action)
>>    @MemberOrder(sequence = "1")
>>    public void assignTimeLapse(@Named("Time Lapse - Duration") final
>> BigDecimal duration, @Named("Time Lapse - Unit") final StandardTimeUnit
>> standardTimeUnit) {
>> 
>>        this.setTimeLapseDuration(duration);
>>        this.setTimeLapseUnit(standardTimeUnit);
>>        this.setValue(StandardTimeUnit.HOURS.convert(duration,
>> standardTimeUnit));
>> 
>>    }
>> 
>>    // }}
>> 
>>    /*
>>     * (non-Javadoc)
>>     *
>>     * @see
>>     *
>> com.xms.framework.risk.criteria.api.domain.ScaleLevel#isValueIncluded
>>     * (java.lang.Object)
>>     */
>>    @Override
>>    @Programmatic
>>    public Boolean isValueIncluded(final BigDecimal value) {
>>        // The equals() method for BigDecimals fails when they don't have
>> the
>>        // same scale. This is the proper way. See:
>>        //
>> http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
>>        if ((this.getValue() == null) || (this.getValue().compareTo(value)
>> < 0)) {
>>            return false;
>>        } else {
>>            final AbstractScaleLevel lowerLevel =
>> this.getScale().lowerLevel(this);
>>            if (lowerLevel == null) {
>>                return true;
>>            } else if (lowerLevel.getValue().compareTo(value) > 0) {
>>                return true;
>>            } else {
>>                return false;
>>            }
>>        }
>>    }
>> 
>>    @Override
>>    @NotPersisted
>>    @NotPersistent
>>    @Hidden
>>    public AbstractScale getScale() {
>>        return this.getTimeScale();
>>    }
>> 
>>    @Override
>>    public void setScale(final AbstractScale scale) {
>>        this.timeScale = (TimeScale) scale;
>>    }
>> 
>>    public String disableValue() {
>>        return "When you enter a Duration and a Time Unit the value will
>> automatically be the equivalent number of Hours";
>>    }
>> 
>> }
>> 
>> 
>> 
>> HTH,
>> 
>> Oscar
>> 
>> 
>> 
>> 
>> El 13/12/2013, a las 17:58, Dan Haywood <da...@haywood-associates.co.uk>
>> escribió:
>> 
>>> It is, perhaps, possible that the object not yet mapped is already
>>> persisted... perhaps it's being loaded lazily earlier on somehow, and
>> isn't
>>> being picked up by the synchronizer.
>>> 
>>> Can you put a break point at the ensureRootLogging(...) when it throws
>> the
>>> exception, and copy the full stack trace out?
>>> 
>>> Also, there may be a quick fix (though it's a bit hacky; it'd be nice to
>>> understand why this is breaking).  Even so, to apply that possible
>>> fix/hack, in ensureRootLObject(...), change the call to
>>> "getAdapterFor(...)" to instead call "adapterFor(...)"; this latter
>> method
>>> will create the adapter if it's not there.
>>> 
>>> Dan
>>> 
>>> 
>>> 
>>> On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
>>> <o....@gesconsultor.com>wrote:
>>> 
>>>> Thanks a lot, Dan.
>>>> 
>>>> This object is:  [value=1.000000000000000,  [name=1 hour,
>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>> 
>>>> That "PointInTime" was initially created through a Fixture - on a past
>>>> execution -, and currently loaded from the database through a repository
>>>> call.
>>>> 
>>>> The code for the repository's method, "findByPropMultiTenant" is the
>> next
>>>> one:
>>>> 
>>>>   @Programmatic
>>>>   public <S extends AbstractXMSDomainObject> List<S>
>>>> findByPropMultiTenant(final String tenantId, final Class<S> clazz, final
>>>> String whereClause, final Integer firstResult, final Integer maxResults,
>>>> final String orderClause) {
>>>>       return
>>>> IsisContext.getTransactionManager().executeWithinTransaction(new
>>>> TransactionalClosureWithReturnAbstract<List<S>>() {
>>>> 
>>>>           @Override
>>>>           public List<S> execute() {
>>>>               return
>>>> 
>> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
>>>> clazz, whereClause, firstResult, maxResults, orderClause);
>>>>           }
>>>> 
>>>>           @Override
>>>>           public void onFailure() {
>>>> 
>>>>           }
>>>>       });
>>>> 
>>>>   }
>>>> 
>>>>   @SuppressWarnings("unchecked")
>>>>   @Programmatic
>>>>   private <S extends AbstractXMSDomainObject> List<S>
>>>> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz,
>> final
>>>> String whereClause, final Integer firstResult, final Integer maxResults,
>>>> final String orderClause) {
>>>> 
>>>>       // Ensure any newly persisted objects are saved to the object
>> store
>>>>       // before executing the query.
>>>>       this.getContainer().flush();
>>>> 
>>>>       // See this for examples:
>>>>       //
>>>> 
>> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
>>>>       final Query query =
>>>> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
>>>> 
>>>>       // Always add the Tenant filter.
>>>>       String filter = String.format("tenantId == '%s'", tenantId);
>>>>       if ((whereClause != null) && (whereClause.trim().length() != 0))
>> {
>>>>           filter = filter.concat(" && ").concat(whereClause);
>>>>       }
>>>>       query.setFilter(filter);
>>>> 
>>>>       query.setRange(this.firstResultToLong(firstResult),
>>>> this.maxResultsToLong(maxResults));
>>>>       final List<S> result = (List<S>) query.execute();
>>>>       return result;
>>>>   }
>>>> 
>>>> 
>>>> 
>>>> Thanks,
>>>> 
>>>> Oscar
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> El 13/12/2013, a las 17:15, Dan Haywood <da...@haywood-associates.co.uk>
>>>> escribió:
>>>> 
>>>>> Hi Oscar,
>>>>> the stack trace is somewhat truncated, unfortunately, but I think I can
>>>>> approximately work it out.
>>>>> 
>>>>> *It starts to get useful down at the very end, in the last nested
>>>> block...*
>>>>> 
>>>>> 
>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
>> Object
>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>> 
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>>>> 
>>>>> 
>>>>> 
>>>>> *From what I can see, there's a repository query...*
>>>>> 
>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>>>> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
>>>>> oryAndFactory.java:509)
>>>>> at
>>>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>>>> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
>>>>> oryAndFactory.java:502)
>>>>> at
>>>>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
>>>>> 
>> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
>>>>> jectRepositoryAndFactory.java:16)
>>>>> at
>>>>> com.xms.framework.monitoring.domain.model.architecture.
>>>>> AssetsMonitoringInformation.monitoringInformation(
>>>>> AssetsMonitoringInformation.java:12)
>>>>> 
>>>>> 
>>>>> 
>>>>> *which (as they all do) causes a flush of the xactn, which in turn
>> causes
>>>>> some queued up "create object" commands to be executed...*
>>>>> 
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
>>>>> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
>>>>> .java:54)
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
>>>>> executeCommands(DataNucleusObjectStore.java:361)
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> *DataNucleus then does its persist...*
>>>>> 
>>>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(
>>>>> JDOStateManager.java:3779)
>>>>> at
>>>>> org.datanucleus.state.JDOStateManager.makePersistent(
>>>>> JDOStateManager.java:3752)
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> *and calls Isis through a callback:*
>>>>> 
>>>>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
>>>>> JDOCallbackHandler.java:158)
>>>>> at
>>>>> 
>>>>> 
>>>>> 
>>>>> *Isis then attempts to synchronize its state with that of DataNucleus,
>>>> and
>>>>> fails fast because it's being asked to locate an object that it has
>> never
>>>>> seen before:*
>>>>> 
>>>>> Caused by: java.lang.RuntimeException:
>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>> 
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>>> at
>>>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>>>> 
>>>>> 
>>>>> *The actual exception is thrown by
>>>> FrameworkSynchronizer#ensureRootObject*
>>>>> 
>>>>>  void ensureRootObject(final PersistenceCapable pojo) {
>>>>>      final ObjectAdapter adapter =
>>>>> getAdapterManager().getAdapterFor(pojo);
>>>>>      if(adapter == null) {
>>>>>          throw new IsisException(MessageFormat.format("Object not yet
>>>>> known to Isis: {0}", pojo));
>>>>>      }
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> *This is a "fail fast" because, I think, it ought not to happen... if
>> the
>>>>> object was created using
>>>>> DomainObjectContainer#createTransientInstance(...), then the pojo's
>>>> adapter
>>>>> would be in the AdapterManager.*
>>>>> 
>>>>> Could you put a break point on the failing line (in ensureRootObject)
>> and
>>>>> find out which object is not mapped, then see how that object is
>>>> originally
>>>>> instantiated (eg put a break point in that object's constructor and
>> look
>>>>> down the stacktrace).
>>>>> 
>>>>> 
>>>>> Dan
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
>>>>> <o....@gesconsultor.com>wrote:
>>>>> 
>>>>>> 
>>>>>> Hi to all.
>>>>>> 
>>>>>> While testing a part of our app, the following exception has been
>>>> raised.
>>>>>> It blocks the execution of any logic.
>>>>>> 
>>>>>> Not sure about if it's a framework error or perhaps something
>> regarding
>>>>>> Isis Session management.
>>>>>> 
>>>>>> Any help, please?
>>>>>> 
>>>>>> Thanks,
>>>>>> 
>>>>>> Oscar
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
>>>>>> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
>>>>>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
>>>>>> executing consequence for rule "event handler: Asset Dimension Impact
>>>>>> restored. Send emails" in com.xms.framework.monitoring.rules:
>>>>>> java.lang.RuntimeException:
>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>> 
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>> com.xms.framework.api.exception.XMSRuntimeException: Exception
>> executing
>>>>>> consequence for rule "event handler: Asset Dimension Impact restored.
>>>>>> Send emails" in com.xms.framework.monitoring.rules:
>>>>>> java.lang.RuntimeException:
>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>> 
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>>> at
>>>>>> 
>>>> 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>>>>> at
>>>>>> 
>>>> 
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
>>>>>> at
>>>>>> 
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>>> at java.lang.Thread.run(Thread.java:662)
>>>>>> Caused by: Exception executing consequence for rule "event handler:
>>>>>> Asset Dimension Impact restored. Send emails" in
>>>>>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>> 
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
>>>>>> at
>>>>>> 
>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
>>>>>> at
>>>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
>>>>>> at
>>>>>> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
>>>>>> ... 73 more
>>>>>> Caused by: java.lang.RuntimeException:
>>>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>> 
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
>>>>>> at
>>>>>> 
>> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
>>>>>> at
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>>>>>> 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:361)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
>>>>>> Source)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
>>>>>> Source)
>>>>>> at
>>>>>> 
>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
>>>>>> ... 91 more
>>>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
>> Object
>>>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>>>> 
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>>>> at
>>>>>> 
>>>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>>>>> ... 184 more
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>> 
>> 


Re: IsisException: Object not yet known to Isis

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
It could be the (... dependentElement = "true") bit.  I don't think we are
using dependent objects in Estatio, which might be a reason we haven't seen
this issue.

You could also try temporarily removing that annotation.  It might change
your schema, so obviously only something to do running under HSQLDB.

Cheers
Dan





On 13 December 2013 17:19, GESCONSULTOR - Óscar Bou
<o....@gesconsultor.com>wrote:

> Not being able to reproduce it now, as I need one system administrator
> that has just left until Monday.
>
> Those entities are "part" of a Scale (inside a Collection), and are lazy
> loaded due to that, I think.
>
> They have the following code:
>
> @PersistenceCapable
> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> public class TimeScale extends AbstractScale {
>
>     // {{ TimeScaleLevels (Collection)
>     @Persistent(mappedBy = "timeScale", dependentElement = "true")
>     private SortedSet<PointInTime> timeScaleLevels = new
> TreeSet<PointInTime>();
>
>     @MemberOrder(sequence = "1")
>     public SortedSet<PointInTime> getTimeScaleLevels() {
>         return this.timeScaleLevels;
>     }
>
>     public void setTimeScaleLevels(final SortedSet<PointInTime>
> timeScaleLevels) {
>         this.timeScaleLevels = timeScaleLevels;
>     }
>
>     @MemberOrder(name = "timeScaleLevels", sequence = "10")
>     public TimeScale insertIntoTimeScaleLevels(final PointInTime
> timeScaleLevel) {
>         this.addToTimeScaleLevels(timeScaleLevel);
>         return this;
>     }
>
>     // Programming model.
>     public void addToTimeScaleLevels(final PointInTime timeScaleLevel) {
>         // check for no-op
>         if ((timeScaleLevel == null) ||
> this.getTimeScaleLevels().contains(timeScaleLevel)) {
>             return;
>         }
>         // associate new
>         this.getTimeScaleLevels().add(timeScaleLevel);
>         // additional business logic
>         this.onAddToTimeScaleLevels(timeScaleLevel);
>     }
>
>     // Action.
>     @MemberOrder(name = "timeScaleLevels", sequence = "20")
>     public TimeScale deleteFromTimeScaleLevels(final PointInTime
> timeScaleLevel) {
>         this.removeFromTimeScaleLevels(timeScaleLevel);
>         return this;
>     }
>
>     // Programming model.
>     public void removeFromTimeScaleLevels(final PointInTime
> timeScaleLevel) {
>         // check for no-op
>         if ((timeScaleLevel == null) ||
> !this.getTimeScaleLevels().contains(timeScaleLevel)) {
>             return;
>         }
>         // dissociate existing
>         this.getTimeScaleLevels().remove(timeScaleLevel);
>         // additional business logic
>         this.onRemoveFromTimeScaleLevels(timeScaleLevel);
>     }
>
>     protected void onAddToTimeScaleLevels(final PointInTime
> timeScaleLevel) {
>     }
>
>     protected void onRemoveFromTimeScaleLevels(final PointInTime
> timeScaleLevel) {
>     }
>
>     // }}
>
>     @SuppressWarnings("unchecked")
>     @Override
>     protected <E extends AbstractScaleLevel> SortedSet<E>
> internalGetElements() {
>         return (SortedSet<E>) this.timeScaleLevels;
>     }
>
>     public PointInTime createLevel(@Named("Name") final String name,
> @Named("Description") @Optional final String description, @Named("Time
> Lapse Duration") final BigDecimal timelapseDuration, @Named("Time Lapse
> Unit") final StandardTimeUnit timelapseUnit) {
>
>         return this.wrap(this.timeScales).createScaleLevel(this, name,
> description, StandardTimeUnit.HOURS.convert(timelapseDuration,
> timelapseUnit), timelapseUnit);
>     }
>
>     // {{ levelForPointInTime (action)
>     @Hidden
>     @MemberOrder(sequence = "1")
>     public PointInTime levelForPointInTime(final BigDecimal pointInTime,
> final StandardTimeUnit pointInTimeUnits) {
>         return (PointInTime)
> this.levelForValue(StandardTimeUnit.HOURS.convert(pointInTime,
> pointInTimeUnits));
>     }
>
>     // }}
>
>     // {{ injected: TimeScales
>     private TimeScales timeScales;
>
>     public void setTimeScales(final TimeScales timeScales) {
>         this.timeScales = timeScales;
>     }
>     // }}
>
>
>
>
> -------------------------------------------------------------------------------------------------------------------
>
>
> @PersistenceCapable
> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> public class PointInTime extends AbstractScaleLevelBin {
>
>     // {{ TimeScale (property)
>     private TimeScale timeScale;
>
>     @Column(allowsNull = "false")
>     @MemberOrder(sequence = "1")
>     public TimeScale getTimeScale() {
>         return this.timeScale;
>     }
>
>     public void setTimeScale(final TimeScale timeScale) {
>         this.timeScale = timeScale;
>     }
>
>     // }}
>
>     // {{ TimeLapseDuration (property)
>     private BigDecimal timeLapseDuration;
>
>     @Disabled
>     @Column(allowsNull = "false")
>     @MemberOrder(sequence = "1")
>     public BigDecimal getTimeLapseDuration() {
>         return this.timeLapseDuration;
>     }
>
>     public void setTimeLapseDuration(final BigDecimal timeLapseDuration) {
>         this.timeLapseDuration = timeLapseDuration;
>     }
>
>     public void modifyTimeLapseDuration(final BigDecimal
> timeLapseDuration) {
>         final BigDecimal currentTimeLapseDuration =
> this.getTimeLapseDuration();
>         // check for no-op
>         if ((timeLapseDuration == null) ||
> timeLapseDuration.equals(currentTimeLapseDuration)) {
>             return;
>         }
>         // associate new
>         this.setTimeLapseDuration(timeLapseDuration);
>         // additional business logic
>         this.onModifyTimeLapseDuration(currentTimeLapseDuration,
> timeLapseDuration);
>     }
>
>     public void clearTimeLapseDuration() {
>         final BigDecimal currentTimeLapseDuration =
> this.getTimeLapseDuration();
>         // check for no-op
>         if (currentTimeLapseDuration == null) {
>             return;
>         }
>         // dissociate existing
>         this.setTimeLapseDuration(null);
>         // additional business logic
>         this.onClearTimeLapseDuration(currentTimeLapseDuration);
>     }
>
>     protected void onModifyTimeLapseDuration(final BigDecimal
> oldTimeLapseDuration, final BigDecimal newTimeLapseDuration) {
>
>         if ((newTimeLapseDuration != null) && (this.getTimeLapseUnit() !=
> null)) {
>
> this.setValue(StandardTimeUnit.HOURS.convert(this.timeLapseDuration,
> this.timeLapseUnit));
>         } else {
>             this.setValue(null);
>         }
>
>     }
>
>     protected void onClearTimeLapseDuration(final BigDecimal
> oldTimeLapseDuration) {
>
>         this.setValue(null);
>
>     }
>
>     // }}
>
>     // {{ TimeLapseUnit (property)
>     private StandardTimeUnit timeLapseUnit;
>
>     @Disabled
>     @Column(allowsNull = "false")
>     @MemberOrder(sequence = "1")
>     public StandardTimeUnit getTimeLapseUnit() {
>         return this.timeLapseUnit;
>     }
>
>     public void setTimeLapseUnit(final StandardTimeUnit timeLapseUnit) {
>         this.timeLapseUnit = timeLapseUnit;
>     }
>
>     // }}
>
>     // {{ assignTimeLapse (action)
>     @MemberOrder(sequence = "1")
>     public void assignTimeLapse(@Named("Time Lapse - Duration") final
> BigDecimal duration, @Named("Time Lapse - Unit") final StandardTimeUnit
> standardTimeUnit) {
>
>         this.setTimeLapseDuration(duration);
>         this.setTimeLapseUnit(standardTimeUnit);
>         this.setValue(StandardTimeUnit.HOURS.convert(duration,
> standardTimeUnit));
>
>     }
>
>     // }}
>
>     /*
>      * (non-Javadoc)
>      *
>      * @see
>      *
> com.xms.framework.risk.criteria.api.domain.ScaleLevel#isValueIncluded
>      * (java.lang.Object)
>      */
>     @Override
>     @Programmatic
>     public Boolean isValueIncluded(final BigDecimal value) {
>         // The equals() method for BigDecimals fails when they don't have
> the
>         // same scale. This is the proper way. See:
>         //
> http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
>         if ((this.getValue() == null) || (this.getValue().compareTo(value)
> < 0)) {
>             return false;
>         } else {
>             final AbstractScaleLevel lowerLevel =
> this.getScale().lowerLevel(this);
>             if (lowerLevel == null) {
>                 return true;
>             } else if (lowerLevel.getValue().compareTo(value) > 0) {
>                 return true;
>             } else {
>                 return false;
>             }
>         }
>     }
>
>     @Override
>     @NotPersisted
>     @NotPersistent
>     @Hidden
>     public AbstractScale getScale() {
>         return this.getTimeScale();
>     }
>
>     @Override
>     public void setScale(final AbstractScale scale) {
>         this.timeScale = (TimeScale) scale;
>     }
>
>     public String disableValue() {
>         return "When you enter a Duration and a Time Unit the value will
> automatically be the equivalent number of Hours";
>     }
>
> }
>
>
>
> HTH,
>
> Oscar
>
>
>
>
> El 13/12/2013, a las 17:58, Dan Haywood <da...@haywood-associates.co.uk>
> escribió:
>
> > It is, perhaps, possible that the object not yet mapped is already
> > persisted... perhaps it's being loaded lazily earlier on somehow, and
> isn't
> > being picked up by the synchronizer.
> >
> > Can you put a break point at the ensureRootLogging(...) when it throws
> the
> > exception, and copy the full stack trace out?
> >
> > Also, there may be a quick fix (though it's a bit hacky; it'd be nice to
> > understand why this is breaking).  Even so, to apply that possible
> > fix/hack, in ensureRootLObject(...), change the call to
> > "getAdapterFor(...)" to instead call "adapterFor(...)"; this latter
> method
> > will create the adapter if it's not there.
> >
> > Dan
> >
> >
> >
> > On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
> > <o....@gesconsultor.com>wrote:
> >
> >> Thanks a lot, Dan.
> >>
> >> This object is:  [value=1.000000000000000,  [name=1 hour,
> >> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>
> >> That "PointInTime" was initially created through a Fixture - on a past
> >> execution -, and currently loaded from the database through a repository
> >> call.
> >>
> >> The code for the repository's method, "findByPropMultiTenant" is the
> next
> >> one:
> >>
> >>    @Programmatic
> >>    public <S extends AbstractXMSDomainObject> List<S>
> >> findByPropMultiTenant(final String tenantId, final Class<S> clazz, final
> >> String whereClause, final Integer firstResult, final Integer maxResults,
> >> final String orderClause) {
> >>        return
> >> IsisContext.getTransactionManager().executeWithinTransaction(new
> >> TransactionalClosureWithReturnAbstract<List<S>>() {
> >>
> >>            @Override
> >>            public List<S> execute() {
> >>                return
> >>
> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
> >> clazz, whereClause, firstResult, maxResults, orderClause);
> >>            }
> >>
> >>            @Override
> >>            public void onFailure() {
> >>
> >>            }
> >>        });
> >>
> >>    }
> >>
> >>    @SuppressWarnings("unchecked")
> >>    @Programmatic
> >>    private <S extends AbstractXMSDomainObject> List<S>
> >> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz,
> final
> >> String whereClause, final Integer firstResult, final Integer maxResults,
> >> final String orderClause) {
> >>
> >>        // Ensure any newly persisted objects are saved to the object
> store
> >>        // before executing the query.
> >>        this.getContainer().flush();
> >>
> >>        // See this for examples:
> >>        //
> >>
> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
> >>        final Query query =
> >> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
> >>
> >>        // Always add the Tenant filter.
> >>        String filter = String.format("tenantId == '%s'", tenantId);
> >>        if ((whereClause != null) && (whereClause.trim().length() != 0))
> {
> >>            filter = filter.concat(" && ").concat(whereClause);
> >>        }
> >>        query.setFilter(filter);
> >>
> >>        query.setRange(this.firstResultToLong(firstResult),
> >> this.maxResultsToLong(maxResults));
> >>        final List<S> result = (List<S>) query.execute();
> >>        return result;
> >>    }
> >>
> >>
> >>
> >> Thanks,
> >>
> >> Oscar
> >>
> >>
> >>
> >>
> >>
> >> El 13/12/2013, a las 17:15, Dan Haywood <da...@haywood-associates.co.uk>
> >> escribió:
> >>
> >>> Hi Oscar,
> >>> the stack trace is somewhat truncated, unfortunately, but I think I can
> >>> approximately work it out.
> >>>
> >>> *It starts to get useful down at the very end, in the last nested
> >> block...*
> >>>
> >>>
> >>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
> Object
> >>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >>>
> >>>
> >>>
> >>> *From what I can see, there's a repository query...*
> >>>
> >>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> >>> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
> >>> oryAndFactory.java:509)
> >>>  at
> >>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> >>> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
> >>> oryAndFactory.java:502)
> >>>  at
> >>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
> >>>
> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
> >>> jectRepositoryAndFactory.java:16)
> >>>  at
> >>> com.xms.framework.monitoring.domain.model.architecture.
> >>> AssetsMonitoringInformation.monitoringInformation(
> >>> AssetsMonitoringInformation.java:12)
> >>>
> >>>
> >>>
> >>> *which (as they all do) causes a flush of the xactn, which in turn
> causes
> >>> some queued up "create object" commands to be executed...*
> >>>
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
> >>> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
> >>> .java:54)
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
> >>> executeCommands(DataNucleusObjectStore.java:361)
> >>>
> >>>
> >>>
> >>>
> >>> *DataNucleus then does its persist...*
> >>>
> >>> org.datanucleus.state.JDOStateManager.internalMakePersistent(
> >>> JDOStateManager.java:3779)
> >>>  at
> >>> org.datanucleus.state.JDOStateManager.makePersistent(
> >>> JDOStateManager.java:3752)
> >>>
> >>>
> >>>
> >>>
> >>> *and calls Isis through a callback:*
> >>>
> >>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
> >>> JDOCallbackHandler.java:158)
> >>>  at
> >>>
> >>>
> >>>
> >>> *Isis then attempts to synchronize its state with that of DataNucleus,
> >> and
> >>> fails fast because it's being asked to locate an object that it has
> never
> >>> seen before:*
> >>>
> >>> Caused by: java.lang.RuntimeException:
> >>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >>>  at
> >>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> >>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >>>
> >>>
> >>> *The actual exception is thrown by
> >> FrameworkSynchronizer#ensureRootObject*
> >>>
> >>>   void ensureRootObject(final PersistenceCapable pojo) {
> >>>       final ObjectAdapter adapter =
> >>> getAdapterManager().getAdapterFor(pojo);
> >>>       if(adapter == null) {
> >>>           throw new IsisException(MessageFormat.format("Object not yet
> >>> known to Isis: {0}", pojo));
> >>>       }
> >>>
> >>>
> >>>
> >>>
> >>> *This is a "fail fast" because, I think, it ought not to happen... if
> the
> >>> object was created using
> >>> DomainObjectContainer#createTransientInstance(...), then the pojo's
> >> adapter
> >>> would be in the AdapterManager.*
> >>>
> >>> Could you put a break point on the failing line (in ensureRootObject)
> and
> >>> find out which object is not mapped, then see how that object is
> >> originally
> >>> instantiated (eg put a break point in that object's constructor and
> look
> >>> down the stacktrace).
> >>>
> >>>
> >>> Dan
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
> >>> <o....@gesconsultor.com>wrote:
> >>>
> >>>>
> >>>> Hi to all.
> >>>>
> >>>> While testing a part of our app, the following exception has been
> >> raised.
> >>>> It blocks the execution of any logic.
> >>>>
> >>>> Not sure about if it's a framework error or perhaps something
> regarding
> >>>> Isis Session management.
> >>>>
> >>>> Any help, please?
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Oscar
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
> >>>> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
> >>>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
> >>>> executing consequence for rule "event handler: Asset Dimension Impact
> >>>> restored. Send emails" in com.xms.framework.monitoring.rules:
> >>>> java.lang.RuntimeException:
> >>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>> com.xms.framework.api.exception.XMSRuntimeException: Exception
> executing
> >>>> consequence for rule "event handler: Asset Dimension Impact restored.
> >>>> Send emails" in com.xms.framework.monitoring.rules:
> >>>> java.lang.RuntimeException:
> >>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
> >>>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>>  at
> >>>>
> >>>>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>>>  at
> >>>>
> >>>>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>>>  at java.lang.reflect.Method.invoke(Method.java:597)
> >>>>  at
> >>>>
> >>>>
> >>
> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
> >>>>  at
> >>>>
> >>>>
> >>
> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
> >>>>  at
> >>>>
> >>>>
> >>
> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
> >>>>  at
> >>>>
> >>>>
> >>
> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
> >>>>  at
> >>>>
> >>>>
> >>
> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
> >>>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> >>>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
> >>>>  at
> >>>>
> >>>>
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >>>>  at
> >>>>
> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> >>>>  at
> >>>>
> >>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
> >>>>  at
> >>>>
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> >>>>  at java.lang.Thread.run(Thread.java:662)
> >>>> Caused by: Exception executing consequence for rule "event handler:
> >>>> Asset Dimension Impact restored. Send emails" in
> >>>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
> >>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>  at
> >>>>
> >>>>
> >>
> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
> >>>>  at
> >>>>
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
> >>>>  at
> >>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> >>>>  at
> >>>> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> >>>>  at
> >>>>
> >>>>
> >>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> >>>>  at
> >>>>
> >>>>
> >>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> >>>>  at
> >>>>
> >>>>
> >>
> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
> >>>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>>  at
> >>>>
> >>>>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>>>  at
> >>>>
> >>>>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>>>  at java.lang.reflect.Method.invoke(Method.java:597)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
> >>>>  ... 73 more
> >>>> Caused by: java.lang.RuntimeException:
> >>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
> >>>>  at
> >>>>
> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
> >>>>  at
> >>>>
> >>
> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
> >>>>  at
> >>>>
> >>>>
> >>
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
> >>>>  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:361)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
> >>>> Source)
> >>>>  at
> >>>>
> >>>>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
> >>>> Source)
> >>>>  at
> >>>>
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> >>>>  ... 91 more
> >>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException:
> Object
> >>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> >>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>>>
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >>>>  at
> >>>>
> >>>>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >>>>  ... 184 more
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>
> >>
>
>

Re: IsisException: Object not yet known to Isis

Posted by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com>.
Not being able to reproduce it now, as I need one system administrator that has just left until Monday.

Those entities are "part" of a Scale (inside a Collection), and are lazy loaded due to that, I think.

They have the following code:

@PersistenceCapable
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
public class TimeScale extends AbstractScale {

    // {{ TimeScaleLevels (Collection)
    @Persistent(mappedBy = "timeScale", dependentElement = "true")
    private SortedSet<PointInTime> timeScaleLevels = new TreeSet<PointInTime>();

    @MemberOrder(sequence = "1")
    public SortedSet<PointInTime> getTimeScaleLevels() {
        return this.timeScaleLevels;
    }

    public void setTimeScaleLevels(final SortedSet<PointInTime> timeScaleLevels) {
        this.timeScaleLevels = timeScaleLevels;
    }

    @MemberOrder(name = "timeScaleLevels", sequence = "10")
    public TimeScale insertIntoTimeScaleLevels(final PointInTime timeScaleLevel) {
        this.addToTimeScaleLevels(timeScaleLevel);
        return this;
    }

    // Programming model.
    public void addToTimeScaleLevels(final PointInTime timeScaleLevel) {
        // check for no-op
        if ((timeScaleLevel == null) || this.getTimeScaleLevels().contains(timeScaleLevel)) {
            return;
        }
        // associate new
        this.getTimeScaleLevels().add(timeScaleLevel);
        // additional business logic
        this.onAddToTimeScaleLevels(timeScaleLevel);
    }

    // Action.
    @MemberOrder(name = "timeScaleLevels", sequence = "20")
    public TimeScale deleteFromTimeScaleLevels(final PointInTime timeScaleLevel) {
        this.removeFromTimeScaleLevels(timeScaleLevel);
        return this;
    }

    // Programming model.
    public void removeFromTimeScaleLevels(final PointInTime timeScaleLevel) {
        // check for no-op
        if ((timeScaleLevel == null) || !this.getTimeScaleLevels().contains(timeScaleLevel)) {
            return;
        }
        // dissociate existing
        this.getTimeScaleLevels().remove(timeScaleLevel);
        // additional business logic
        this.onRemoveFromTimeScaleLevels(timeScaleLevel);
    }

    protected void onAddToTimeScaleLevels(final PointInTime timeScaleLevel) {
    }

    protected void onRemoveFromTimeScaleLevels(final PointInTime timeScaleLevel) {
    }

    // }}

    @SuppressWarnings("unchecked")
    @Override
    protected <E extends AbstractScaleLevel> SortedSet<E> internalGetElements() {
        return (SortedSet<E>) this.timeScaleLevels;
    }

    public PointInTime createLevel(@Named("Name") final String name, @Named("Description") @Optional final String description, @Named("Time Lapse Duration") final BigDecimal timelapseDuration, @Named("Time Lapse Unit") final StandardTimeUnit timelapseUnit) {

        return this.wrap(this.timeScales).createScaleLevel(this, name, description, StandardTimeUnit.HOURS.convert(timelapseDuration, timelapseUnit), timelapseUnit);
    }

    // {{ levelForPointInTime (action)
    @Hidden
    @MemberOrder(sequence = "1")
    public PointInTime levelForPointInTime(final BigDecimal pointInTime, final StandardTimeUnit pointInTimeUnits) {
        return (PointInTime) this.levelForValue(StandardTimeUnit.HOURS.convert(pointInTime, pointInTimeUnits));
    }

    // }}

    // {{ injected: TimeScales
    private TimeScales timeScales;

    public void setTimeScales(final TimeScales timeScales) {
        this.timeScales = timeScales;
    }
    // }}



-------------------------------------------------------------------------------------------------------------------


@PersistenceCapable
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
public class PointInTime extends AbstractScaleLevelBin {

    // {{ TimeScale (property)
    private TimeScale timeScale;

    @Column(allowsNull = "false")
    @MemberOrder(sequence = "1")
    public TimeScale getTimeScale() {
        return this.timeScale;
    }

    public void setTimeScale(final TimeScale timeScale) {
        this.timeScale = timeScale;
    }

    // }}

    // {{ TimeLapseDuration (property)
    private BigDecimal timeLapseDuration;

    @Disabled
    @Column(allowsNull = "false")
    @MemberOrder(sequence = "1")
    public BigDecimal getTimeLapseDuration() {
        return this.timeLapseDuration;
    }

    public void setTimeLapseDuration(final BigDecimal timeLapseDuration) {
        this.timeLapseDuration = timeLapseDuration;
    }

    public void modifyTimeLapseDuration(final BigDecimal timeLapseDuration) {
        final BigDecimal currentTimeLapseDuration = this.getTimeLapseDuration();
        // check for no-op
        if ((timeLapseDuration == null) || timeLapseDuration.equals(currentTimeLapseDuration)) {
            return;
        }
        // associate new
        this.setTimeLapseDuration(timeLapseDuration);
        // additional business logic
        this.onModifyTimeLapseDuration(currentTimeLapseDuration, timeLapseDuration);
    }

    public void clearTimeLapseDuration() {
        final BigDecimal currentTimeLapseDuration = this.getTimeLapseDuration();
        // check for no-op
        if (currentTimeLapseDuration == null) {
            return;
        }
        // dissociate existing
        this.setTimeLapseDuration(null);
        // additional business logic
        this.onClearTimeLapseDuration(currentTimeLapseDuration);
    }

    protected void onModifyTimeLapseDuration(final BigDecimal oldTimeLapseDuration, final BigDecimal newTimeLapseDuration) {

        if ((newTimeLapseDuration != null) && (this.getTimeLapseUnit() != null)) {
            this.setValue(StandardTimeUnit.HOURS.convert(this.timeLapseDuration, this.timeLapseUnit));
        } else {
            this.setValue(null);
        }

    }

    protected void onClearTimeLapseDuration(final BigDecimal oldTimeLapseDuration) {

        this.setValue(null);

    }

    // }}

    // {{ TimeLapseUnit (property)
    private StandardTimeUnit timeLapseUnit;

    @Disabled
    @Column(allowsNull = "false")
    @MemberOrder(sequence = "1")
    public StandardTimeUnit getTimeLapseUnit() {
        return this.timeLapseUnit;
    }

    public void setTimeLapseUnit(final StandardTimeUnit timeLapseUnit) {
        this.timeLapseUnit = timeLapseUnit;
    }

    // }}

    // {{ assignTimeLapse (action)
    @MemberOrder(sequence = "1")
    public void assignTimeLapse(@Named("Time Lapse - Duration") final BigDecimal duration, @Named("Time Lapse - Unit") final StandardTimeUnit standardTimeUnit) {

        this.setTimeLapseDuration(duration);
        this.setTimeLapseUnit(standardTimeUnit);
        this.setValue(StandardTimeUnit.HOURS.convert(duration, standardTimeUnit));

    }

    // }}

    /*
     * (non-Javadoc)
     * 
     * @see
     * com.xms.framework.risk.criteria.api.domain.ScaleLevel#isValueIncluded
     * (java.lang.Object)
     */
    @Override
    @Programmatic
    public Boolean isValueIncluded(final BigDecimal value) {
        // The equals() method for BigDecimals fails when they don't have the
        // same scale. This is the proper way. See:
        // http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
        if ((this.getValue() == null) || (this.getValue().compareTo(value) < 0)) {
            return false;
        } else {
            final AbstractScaleLevel lowerLevel = this.getScale().lowerLevel(this);
            if (lowerLevel == null) {
                return true;
            } else if (lowerLevel.getValue().compareTo(value) > 0) {
                return true;
            } else {
                return false;
            }
        }
    }

    @Override
    @NotPersisted
    @NotPersistent
    @Hidden
    public AbstractScale getScale() {
        return this.getTimeScale();
    }

    @Override
    public void setScale(final AbstractScale scale) {
        this.timeScale = (TimeScale) scale;
    }

    public String disableValue() {
        return "When you enter a Duration and a Time Unit the value will automatically be the equivalent number of Hours";
    }

}



HTH,

Oscar




El 13/12/2013, a las 17:58, Dan Haywood <da...@haywood-associates.co.uk> escribió:

> It is, perhaps, possible that the object not yet mapped is already
> persisted... perhaps it's being loaded lazily earlier on somehow, and isn't
> being picked up by the synchronizer.
> 
> Can you put a break point at the ensureRootLogging(...) when it throws the
> exception, and copy the full stack trace out?
> 
> Also, there may be a quick fix (though it's a bit hacky; it'd be nice to
> understand why this is breaking).  Even so, to apply that possible
> fix/hack, in ensureRootLObject(...), change the call to
> "getAdapterFor(...)" to instead call "adapterFor(...)"; this latter method
> will create the adapter if it's not there.
> 
> Dan
> 
> 
> 
> On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
> <o....@gesconsultor.com>wrote:
> 
>> Thanks a lot, Dan.
>> 
>> This object is:  [value=1.000000000000000,  [name=1 hour,
>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>> 
>> That "PointInTime" was initially created through a Fixture - on a past
>> execution -, and currently loaded from the database through a repository
>> call.
>> 
>> The code for the repository's method, "findByPropMultiTenant" is the next
>> one:
>> 
>>    @Programmatic
>>    public <S extends AbstractXMSDomainObject> List<S>
>> findByPropMultiTenant(final String tenantId, final Class<S> clazz, final
>> String whereClause, final Integer firstResult, final Integer maxResults,
>> final String orderClause) {
>>        return
>> IsisContext.getTransactionManager().executeWithinTransaction(new
>> TransactionalClosureWithReturnAbstract<List<S>>() {
>> 
>>            @Override
>>            public List<S> execute() {
>>                return
>> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
>> clazz, whereClause, firstResult, maxResults, orderClause);
>>            }
>> 
>>            @Override
>>            public void onFailure() {
>> 
>>            }
>>        });
>> 
>>    }
>> 
>>    @SuppressWarnings("unchecked")
>>    @Programmatic
>>    private <S extends AbstractXMSDomainObject> List<S>
>> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz, final
>> String whereClause, final Integer firstResult, final Integer maxResults,
>> final String orderClause) {
>> 
>>        // Ensure any newly persisted objects are saved to the object store
>>        // before executing the query.
>>        this.getContainer().flush();
>> 
>>        // See this for examples:
>>        //
>> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
>>        final Query query =
>> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
>> 
>>        // Always add the Tenant filter.
>>        String filter = String.format("tenantId == '%s'", tenantId);
>>        if ((whereClause != null) && (whereClause.trim().length() != 0)) {
>>            filter = filter.concat(" && ").concat(whereClause);
>>        }
>>        query.setFilter(filter);
>> 
>>        query.setRange(this.firstResultToLong(firstResult),
>> this.maxResultsToLong(maxResults));
>>        final List<S> result = (List<S>) query.execute();
>>        return result;
>>    }
>> 
>> 
>> 
>> Thanks,
>> 
>> Oscar
>> 
>> 
>> 
>> 
>> 
>> El 13/12/2013, a las 17:15, Dan Haywood <da...@haywood-associates.co.uk>
>> escribió:
>> 
>>> Hi Oscar,
>>> the stack trace is somewhat truncated, unfortunately, but I think I can
>>> approximately work it out.
>>> 
>>> *It starts to get useful down at the very end, in the last nested
>> block...*
>>> 
>>> 
>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>> 
>>> 
>>> 
>>> *From what I can see, there's a repository query...*
>>> 
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
>>> oryAndFactory.java:509)
>>>  at
>>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
>>> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
>>> oryAndFactory.java:502)
>>>  at
>>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
>>> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
>>> jectRepositoryAndFactory.java:16)
>>>  at
>>> com.xms.framework.monitoring.domain.model.architecture.
>>> AssetsMonitoringInformation.monitoringInformation(
>>> AssetsMonitoringInformation.java:12)
>>> 
>>> 
>>> 
>>> *which (as they all do) causes a flush of the xactn, which in turn causes
>>> some queued up "create object" commands to be executed...*
>>> 
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
>>> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
>>> .java:54)
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
>>> executeCommands(DataNucleusObjectStore.java:361)
>>> 
>>> 
>>> 
>>> 
>>> *DataNucleus then does its persist...*
>>> 
>>> org.datanucleus.state.JDOStateManager.internalMakePersistent(
>>> JDOStateManager.java:3779)
>>>  at
>>> org.datanucleus.state.JDOStateManager.makePersistent(
>>> JDOStateManager.java:3752)
>>> 
>>> 
>>> 
>>> 
>>> *and calls Isis through a callback:*
>>> 
>>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
>>> JDOCallbackHandler.java:158)
>>>  at
>>> 
>>> 
>>> 
>>> *Isis then attempts to synchronize its state with that of DataNucleus,
>> and
>>> fails fast because it's being asked to locate an object that it has never
>>> seen before:*
>>> 
>>> Caused by: java.lang.RuntimeException:
>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>  at
>>> org.apache.isis.objectstore.jdo.datanucleus.persistence.
>>> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>> 
>>> 
>>> *The actual exception is thrown by
>> FrameworkSynchronizer#ensureRootObject*
>>> 
>>>   void ensureRootObject(final PersistenceCapable pojo) {
>>>       final ObjectAdapter adapter =
>>> getAdapterManager().getAdapterFor(pojo);
>>>       if(adapter == null) {
>>>           throw new IsisException(MessageFormat.format("Object not yet
>>> known to Isis: {0}", pojo));
>>>       }
>>> 
>>> 
>>> 
>>> 
>>> *This is a "fail fast" because, I think, it ought not to happen... if the
>>> object was created using
>>> DomainObjectContainer#createTransientInstance(...), then the pojo's
>> adapter
>>> would be in the AdapterManager.*
>>> 
>>> Could you put a break point on the failing line (in ensureRootObject) and
>>> find out which object is not mapped, then see how that object is
>> originally
>>> instantiated (eg put a break point in that object's constructor and look
>>> down the stacktrace).
>>> 
>>> 
>>> Dan
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
>>> <o....@gesconsultor.com>wrote:
>>> 
>>>> 
>>>> Hi to all.
>>>> 
>>>> While testing a part of our app, the following exception has been
>> raised.
>>>> It blocks the execution of any logic.
>>>> 
>>>> Not sure about if it's a framework error or perhaps something regarding
>>>> Isis Session management.
>>>> 
>>>> Any help, please?
>>>> 
>>>> Thanks,
>>>> 
>>>> Oscar
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
>>>> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
>>>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
>>>> executing consequence for rule "event handler: Asset Dimension Impact
>>>> restored. Send emails" in com.xms.framework.monitoring.rules:
>>>> java.lang.RuntimeException:
>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>> com.xms.framework.api.exception.XMSRuntimeException: Exception executing
>>>> consequence for rule "event handler: Asset Dimension Impact restored.
>>>> Send emails" in com.xms.framework.monitoring.rules:
>>>> java.lang.RuntimeException:
>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
>>>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>  at
>>>> 
>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>  at
>>>> 
>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>  at java.lang.reflect.Method.invoke(Method.java:597)
>>>>  at
>>>> 
>>>> 
>> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
>>>>  at
>>>> 
>>>> 
>> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
>>>>  at
>>>> 
>>>> 
>> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
>>>>  at
>>>> 
>>>> 
>> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
>>>>  at
>>>> 
>>>> 
>> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
>>>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>>>>  at
>>>> 
>>>> 
>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>>>>  at
>>>> 
>>>> 
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>  at
>>>> 
>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>>>>  at
>>>> 
>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>>>>  at
>>>> 
>>>> 
>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>>>>  at
>>>> 
>>>> 
>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>>>>  at
>>>> 
>>>> 
>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>>>>  at
>>>> 
>>>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>>>>  at
>>>> 
>>>> 
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>  at
>>>> 
>>>> 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>  at
>>>> 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>>>  at
>>>> 
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
>>>>  at
>>>> 
>>>> 
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
>>>>  at
>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>  at java.lang.Thread.run(Thread.java:662)
>>>> Caused by: Exception executing consequence for rule "event handler:
>>>> Asset Dimension Impact restored. Send emails" in
>>>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>  at
>>>> 
>>>> 
>> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
>>>>  at
>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
>>>>  at
>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
>>>>  at
>>>> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
>>>>  at
>>>> 
>>>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
>>>>  at
>>>> 
>>>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
>>>>  at
>>>> 
>>>> 
>> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
>>>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>  at
>>>> 
>>>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>  at
>>>> 
>>>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>  at java.lang.reflect.Method.invoke(Method.java:597)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
>>>>  ... 73 more
>>>> Caused by: java.lang.RuntimeException:
>>>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>>>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
>>>>  at
>>>> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
>>>>  at
>>>> 
>> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>>>>  at
>>>> 
>>>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>>>>  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:361)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
>>>> Source)
>>>>  at
>>>> 
>>>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
>>>> Source)
>>>>  at
>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
>>>>  ... 91 more
>>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
>>>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>>>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>>>> 
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>>>  at
>>>> 
>>>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>>>  ... 184 more
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>> 
>> 


Re: IsisException: Object not yet known to Isis

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
It is, perhaps, possible that the object not yet mapped is already
persisted... perhaps it's being loaded lazily earlier on somehow, and isn't
being picked up by the synchronizer.

Can you put a break point at the ensureRootLogging(...) when it throws the
exception, and copy the full stack trace out?

Also, there may be a quick fix (though it's a bit hacky; it'd be nice to
understand why this is breaking).  Even so, to apply that possible
fix/hack, in ensureRootLObject(...), change the call to
"getAdapterFor(...)" to instead call "adapterFor(...)"; this latter method
will create the adapter if it's not there.

Dan



On 13 December 2013 16:37, GESCONSULTOR - Óscar Bou
<o....@gesconsultor.com>wrote:

> Thanks a lot, Dan.
>
> This object is:  [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>
> That "PointInTime" was initially created through a Fixture - on a past
> execution -, and currently loaded from the database through a repository
> call.
>
> The code for the repository's method, "findByPropMultiTenant" is the next
> one:
>
>     @Programmatic
>     public <S extends AbstractXMSDomainObject> List<S>
> findByPropMultiTenant(final String tenantId, final Class<S> clazz, final
> String whereClause, final Integer firstResult, final Integer maxResults,
> final String orderClause) {
>         return
> IsisContext.getTransactionManager().executeWithinTransaction(new
> TransactionalClosureWithReturnAbstract<List<S>>() {
>
>             @Override
>             public List<S> execute() {
>                 return
> AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId,
> clazz, whereClause, firstResult, maxResults, orderClause);
>             }
>
>             @Override
>             public void onFailure() {
>
>             }
>         });
>
>     }
>
>     @SuppressWarnings("unchecked")
>     @Programmatic
>     private <S extends AbstractXMSDomainObject> List<S>
> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz, final
> String whereClause, final Integer firstResult, final Integer maxResults,
> final String orderClause) {
>
>         // Ensure any newly persisted objects are saved to the object store
>         // before executing the query.
>         this.getContainer().flush();
>
>         // See this for examples:
>         //
> http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
>         final Query query =
> this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);
>
>         // Always add the Tenant filter.
>         String filter = String.format("tenantId == '%s'", tenantId);
>         if ((whereClause != null) && (whereClause.trim().length() != 0)) {
>             filter = filter.concat(" && ").concat(whereClause);
>         }
>         query.setFilter(filter);
>
>         query.setRange(this.firstResultToLong(firstResult),
> this.maxResultsToLong(maxResults));
>         final List<S> result = (List<S>) query.execute();
>         return result;
>     }
>
>
>
> Thanks,
>
> Oscar
>
>
>
>
>
> El 13/12/2013, a las 17:15, Dan Haywood <da...@haywood-associates.co.uk>
> escribió:
>
> > Hi Oscar,
> > the stack trace is somewhat truncated, unfortunately, but I think I can
> > approximately work it out.
> >
> > *It starts to get useful down at the very end, in the last nested
> block...*
> >
> >
> > Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
> > not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> > [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.
> > FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.
> > FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.
> > FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.
> > FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.
> > FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >
> >
> >
> > *From what I can see, there's a repository query...*
> >
> > com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> > oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
> > oryAndFactory.java:509)
> >   at
> > com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> > oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
> > oryAndFactory.java:502)
> >   at
> > com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
> > jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
> > jectRepositoryAndFactory.java:16)
> >   at
> > com.xms.framework.monitoring.domain.model.architecture.
> > AssetsMonitoringInformation.monitoringInformation(
> > AssetsMonitoringInformation.java:12)
> >
> >
> >
> > *which (as they all do) causes a flush of the xactn, which in turn causes
> > some queued up "create object" commands to be executed...*
> >
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
> > DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
> > .java:54)
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
> > executeCommands(DataNucleusObjectStore.java:361)
> >
> >
> >
> >
> > *DataNucleus then does its persist...*
> >
> > org.datanucleus.state.JDOStateManager.internalMakePersistent(
> > JDOStateManager.java:3779)
> >   at
> > org.datanucleus.state.JDOStateManager.makePersistent(
> > JDOStateManager.java:3752)
> >
> >
> >
> >
> > *and calls Isis through a callback:*
> >
> > org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
> > JDOCallbackHandler.java:158)
> >   at
> >
> >
> >
> > *Isis then attempts to synchronize its state with that of DataNucleus,
> and
> > fails fast because it's being asked to locate an object that it has never
> > seen before:*
> >
> > Caused by: java.lang.RuntimeException:
> > org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> > known to Isis: [value=1.000000000000000,  [name=1 hour,
> > [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.
> > FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >   at
> > org.apache.isis.objectstore.jdo.datanucleus.persistence.
> > FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >
> >
> > *The actual exception is thrown by
> FrameworkSynchronizer#ensureRootObject*
> >
> >    void ensureRootObject(final PersistenceCapable pojo) {
> >        final ObjectAdapter adapter =
> > getAdapterManager().getAdapterFor(pojo);
> >        if(adapter == null) {
> >            throw new IsisException(MessageFormat.format("Object not yet
> > known to Isis: {0}", pojo));
> >        }
> >
> >
> >
> >
> > *This is a "fail fast" because, I think, it ought not to happen... if the
> > object was created using
> > DomainObjectContainer#createTransientInstance(...), then the pojo's
> adapter
> > would be in the AdapterManager.*
> >
> > Could you put a break point on the failing line (in ensureRootObject) and
> > find out which object is not mapped, then see how that object is
> originally
> > instantiated (eg put a break point in that object's constructor and look
> > down the stacktrace).
> >
> >
> > Dan
> >
> >
> >
> >
> >
> >
> > On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
> > <o....@gesconsultor.com>wrote:
> >
> >>
> >> Hi to all.
> >>
> >> While testing a part of our app, the following exception has been
> raised.
> >> It blocks the execution of any logic.
> >>
> >> Not sure about if it's a framework error or perhaps something regarding
> >> Isis Session management.
> >>
> >> Any help, please?
> >>
> >> Thanks,
> >>
> >> Oscar
> >>
> >>
> >>
> >>
> >> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
> >> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
> >> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
> >> executing consequence for rule "event handler: Asset Dimension Impact
> >> restored. Send emails" in com.xms.framework.monitoring.rules:
> >> java.lang.RuntimeException:
> >> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >> com.xms.framework.api.exception.XMSRuntimeException: Exception executing
> >> consequence for rule "event handler: Asset Dimension Impact restored.
> >> Send emails" in com.xms.framework.monitoring.rules:
> >> java.lang.RuntimeException:
> >> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>   at
> >>
> >>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
> >>   at
> >>
> >>
> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
> >>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>   at
> >>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>   at
> >>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>   at java.lang.reflect.Method.invoke(Method.java:597)
> >>   at
> >>
> >>
> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
> >>   at
> >>
> >>
> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
> >>   at
> >>
> >>
> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
> >>   at
> >>
> >>
> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
> >>   at
> >>
> >>
> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
> >>   at
> >>
> >>
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
> >>   at
> >>
> >>
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
> >>   at
> >>
> >>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
> >>   at
> >>
> >>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
> >>   at
> >>
> >>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
> >>   at
> >>
> >>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
> >>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> >>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> >>   at
> >>
> >>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> >>   at
> >>
> >>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> >>   at
> >>
> >>
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> >>   at
> >>
> >>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> >>   at
> >>
> >>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>   at
> >>
> >>
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
> >>   at
> >>
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>   at
> >>
> >>
> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
> >>   at
> >>
> >>
> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>   at
> >>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
> >>   at
> >>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
> >>   at
> >>
> >>
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
> >>   at
> >>
> >>
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
> >>   at
> >>
> >>
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
> >>   at
> >>
> >>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
> >>   at
> >>
> >>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >>   at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >>   at
> >>
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> >>   at
> >>
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> >>   at
> >>
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> >>   at
> >>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> >>   at
> >>
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >>   at
> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> >>   at
> >>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
> >>   at
> >>
> >>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
> >>   at
> >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> >>   at java.lang.Thread.run(Thread.java:662)
> >> Caused by: Exception executing consequence for rule "event handler:
> >> Asset Dimension Impact restored. Send emails" in
> >> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
> >> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>   at
> >>
> >>
> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
> >>   at
> >> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
> >>   at
> >> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> >>   at
> >> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> >>   at
> >>
> >>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> >>   at
> >>
> >>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> >>   at
> >>
> >>
> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
> >>   at
> >>
> >>
> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
> >>   at
> >>
> >>
> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
> >>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>   at
> >>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >>   at
> >>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >>   at java.lang.reflect.Method.invoke(Method.java:597)
> >>   at
> >>
> >>
> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
> >>   at
> >>
> >>
> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
> >>   at
> >>
> >>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
> >>   ... 73 more
> >> Caused by: java.lang.RuntimeException:
> >> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> >> known to Isis: [value=1.000000000000000,  [name=1 hour,
> >> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
> >>   at
> >>
> >>
> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
> >>   at
> >>
> >>
> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
> >>   at
> >> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
> >>   at
> >>
> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>   at
> >>
> >>
> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>   at
> >>
> >>
> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
> >>   at
> >>
> >>
> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
> >>   at
> >>
> >>
> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
> >>   at
> >>
> >>
> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
> >>   at
> >>
> >>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
> >>   at
> >>
> >>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
> >>   at
> >>
> >>
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
> >>   at
> >>
> >>
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
> >>   at
> >>
> >>
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
> >>   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:361)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
> >>   at
> >>
> >>
> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>   at
> >>
> >>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
> >>   at
> >>
> >>
> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
> >>   at
> >>
> >>
> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
> >>   at
> >>
> >>
> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
> >>   at
> >>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
> >>   at
> >>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
> >> Source)
> >>   at
> >>
> >>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
> >> Source)
> >>   at
> >> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> >>   ... 91 more
> >> Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
> >> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> >> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> >>
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
> >>   at
> >>
> >>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> >>   ... 184 more
> >>
> >>
> >>
> >>
> >>
>
>

Re: IsisException: Object not yet known to Isis

Posted by GESCONSULTOR - Óscar Bou <o....@gesconsultor.com>.
Thanks a lot, Dan.

This object is:  [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]

That "PointInTime" was initially created through a Fixture - on a past execution -, and currently loaded from the database through a repository call.

The code for the repository's method, "findByPropMultiTenant" is the next one:

    @Programmatic
    public <S extends AbstractXMSDomainObject> List<S> findByPropMultiTenant(final String tenantId, final Class<S> clazz, final String whereClause, final Integer firstResult, final Integer maxResults, final String orderClause) {
        return IsisContext.getTransactionManager().executeWithinTransaction(new TransactionalClosureWithReturnAbstract<List<S>>() {

            @Override
            public List<S> execute() {
                return AbstractXMSDomainObjectRepositoryAndFactory.this.doFindByPropMultiTenant(tenantId, clazz, whereClause, firstResult, maxResults, orderClause);
            }

            @Override
            public void onFailure() {

            }
        });

    }

    @SuppressWarnings("unchecked")
    @Programmatic
    private <S extends AbstractXMSDomainObject> List<S> doFindByPropMultiTenant(final String tenantId, final Class<S> clazz, final String whereClause, final Integer firstResult, final Integer maxResults, final String orderClause) {

        // Ensure any newly persisted objects are saved to the object store
        // before executing the query.
        this.getContainer().flush();

        // See this for examples:
        // http://www.datanucleus.org/products/accessplatform_2_1/jdo/query_api.html
        final Query query = this.isisJdoSupport.getJdoPersistenceManager().newQuery(clazz);

        // Always add the Tenant filter.
        String filter = String.format("tenantId == '%s'", tenantId);
        if ((whereClause != null) && (whereClause.trim().length() != 0)) {
            filter = filter.concat(" && ").concat(whereClause);
        }
        query.setFilter(filter);

        query.setRange(this.firstResultToLong(firstResult), this.maxResultsToLong(maxResults));
        final List<S> result = (List<S>) query.execute();
        return result;
    }



Thanks,

Oscar





El 13/12/2013, a las 17:15, Dan Haywood <da...@haywood-associates.co.uk> escribió:

> Hi Oscar,
> the stack trace is somewhat truncated, unfortunately, but I think I can
> approximately work it out.
> 
> *It starts to get useful down at the very end, in the last nested block...*
> 
> 
> Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>   at
> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>   at
> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>   at
> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>   at
> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>   at
> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
> 
> 
> 
> *From what I can see, there's a repository query...*
> 
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
> oryAndFactory.java:509)
>   at
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
> oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
> oryAndFactory.java:502)
>   at
> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
> jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
> jectRepositoryAndFactory.java:16)
>   at
> com.xms.framework.monitoring.domain.model.architecture.
> AssetsMonitoringInformation.monitoringInformation(
> AssetsMonitoringInformation.java:12)
> 
> 
> 
> *which (as they all do) causes a flush of the xactn, which in turn causes
> some queued up "create object" commands to be executed...*
> 
> org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
> DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
> .java:54)
>   at
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
> executeCommands(DataNucleusObjectStore.java:361)
> 
> 
> 
> 
> *DataNucleus then does its persist...*
> 
> org.datanucleus.state.JDOStateManager.internalMakePersistent(
> JDOStateManager.java:3779)
>   at
> org.datanucleus.state.JDOStateManager.makePersistent(
> JDOStateManager.java:3752)
> 
> 
> 
> 
> *and calls Isis through a callback:*
> 
> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
> JDOCallbackHandler.java:158)
>   at
> 
> 
> 
> *Isis then attempts to synchronize its state with that of DataNucleus, and
> fails fast because it's being asked to locate an object that it has never
> seen before:*
> 
> Caused by: java.lang.RuntimeException:
> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> known to Isis: [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>   at
> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>   at
> org.apache.isis.objectstore.jdo.datanucleus.persistence.
> FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
> 
> 
> *The actual exception is thrown by FrameworkSynchronizer#ensureRootObject*
> 
>    void ensureRootObject(final PersistenceCapable pojo) {
>        final ObjectAdapter adapter =
> getAdapterManager().getAdapterFor(pojo);
>        if(adapter == null) {
>            throw new IsisException(MessageFormat.format("Object not yet
> known to Isis: {0}", pojo));
>        }
> 
> 
> 
> 
> *This is a "fail fast" because, I think, it ought not to happen... if the
> object was created using
> DomainObjectContainer#createTransientInstance(...), then the pojo's adapter
> would be in the AdapterManager.*
> 
> Could you put a break point on the failing line (in ensureRootObject) and
> find out which object is not mapped, then see how that object is originally
> instantiated (eg put a break point in that object's constructor and look
> down the stacktrace).
> 
> 
> Dan
> 
> 
> 
> 
> 
> 
> On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
> <o....@gesconsultor.com>wrote:
> 
>> 
>> Hi to all.
>> 
>> While testing a part of our app, the following exception has been raised.
>> It blocks the execution of any logic.
>> 
>> Not sure about if it's a framework error or perhaps something regarding
>> Isis Session management.
>> 
>> Any help, please?
>> 
>> Thanks,
>> 
>> Oscar
>> 
>> 
>> 
>> 
>> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
>> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
>> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
>> executing consequence for rule "event handler: Asset Dimension Impact
>> restored. Send emails" in com.xms.framework.monitoring.rules:
>> java.lang.RuntimeException:
>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>> com.xms.framework.api.exception.XMSRuntimeException: Exception executing
>> consequence for rule "event handler: Asset Dimension Impact restored.
>> Send emails" in com.xms.framework.monitoring.rules:
>> java.lang.RuntimeException:
>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>   at
>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
>>   at
>> 
>> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>   at
>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>   at
>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>   at java.lang.reflect.Method.invoke(Method.java:597)
>>   at
>> 
>> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
>>   at
>> 
>> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
>>   at
>> 
>> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
>>   at
>> 
>> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
>>   at
>> 
>> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
>>   at
>> 
>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>>   at
>> 
>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>>   at
>> 
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
>>   at
>> 
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
>>   at
>> 
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>>   at
>> 
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
>>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>>   at
>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>   at
>> 
>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>>   at
>> 
>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>>   at
>> 
>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>>   at
>> 
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>   at
>> 
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>>   at
>> 
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>   at
>> 
>> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
>>   at
>> 
>> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>   at
>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>>   at
>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>>   at
>> 
>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>>   at
>> 
>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>>   at
>> 
>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>>   at
>> 
>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>>   at
>> 
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>   at
>> 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>   at
>> 
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>   at
>> 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>   at
>> 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>   at
>> 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>   at
>> 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>   at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>   at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
>>   at
>> 
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
>>   at
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>   at java.lang.Thread.run(Thread.java:662)
>> Caused by: Exception executing consequence for rule "event handler:
>> Asset Dimension Impact restored. Send emails" in
>> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>   at
>> 
>> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
>>   at
>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
>>   at
>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
>>   at
>> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
>>   at
>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
>>   at
>> 
>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
>>   at
>> 
>> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
>>   at
>> 
>> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
>>   at
>> 
>> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>   at
>> 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>   at
>> 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>   at java.lang.reflect.Method.invoke(Method.java:597)
>>   at
>> 
>> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
>>   at
>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
>>   at
>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
>>   at
>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>   at
>> 
>> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
>>   at
>> 
>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
>>   at
>> 
>> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
>>   ... 73 more
>> Caused by: java.lang.RuntimeException:
>> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
>> known to Isis: [value=1.000000000000000,  [name=1 hour,
>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
>>   at
>> 
>> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
>>   at
>> 
>> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
>>   at
>> 
>> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
>>   at
>> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
>>   at
>> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
>>   at
>> 
>> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
>>   at
>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>   at
>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>   at
>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>   at
>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>   at
>> 
>> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>   at
>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>   at
>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>   at
>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>   at
>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>   at
>> 
>> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
>>   at
>> 
>> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
>>   at
>> 
>> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>   at
>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>>   at
>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>>   at
>> 
>> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>>   at
>> 
>> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>>   at
>> 
>> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>>   at
>> 
>> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>>   at
>> 
>> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>>   at
>> 
>> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
>>   at
>> 
>> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
>>   at
>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>>   at
>> 
>> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>>   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:361)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
>>   at
>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
>>   at
>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
>>   at
>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
>>   at
>> 
>> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
>>   at
>> 
>> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>   at
>> 
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
>>   at
>> 
>> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
>>   at
>> 
>> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
>>   at
>> 
>> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
>>   at
>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
>>   at
>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
>> Source)
>>   at
>> 
>> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
>> Source)
>>   at
>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
>>   ... 91 more
>> Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
>> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
>> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
>> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>>   at
>> 
>> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>>   ... 184 more
>> 
>> 
>> 
>> 
>> 


Re: IsisException: Object not yet known to Isis

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Hi Oscar,
the stack trace is somewhat truncated, unfortunately, but I think I can
approximately work it out.

*It starts to get useful down at the very end, in the last nested block...*


Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.
FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.
FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.
FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.
FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.
FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)



*From what I can see, there's a repository query...*

com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
oryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectReposit
oryAndFactory.java:509)
   at
com.xms.framework.common.domain.model.AbstractXMSDomainObjectReposit
oryAndFactory.findByProp(AbstractXMSDomainObjectReposit
oryAndFactory.java:502)
   at
com.xms.framework.common.domain.model.AbstractSingletonMultiTenantOb
jectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantOb
jectRepositoryAndFactory.java:16)
   at
com.xms.framework.monitoring.domain.model.architecture.
AssetsMonitoringInformation.monitoringInformation(
AssetsMonitoringInformation.java:12)



*which (as they all do) causes a flush of the xactn, which in turn causes
some queued up "create object" commands to be executed...*

org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.
DataNucleusCreateObjectCommand.execute(DataNucleusCreateObjectCommand
.java:54)
   at
org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.
executeCommands(DataNucleusObjectStore.java:361)




*DataNucleus then does its persist...*

org.datanucleus.state.JDOStateManager.internalMakePersistent(
JDOStateManager.java:3779)
   at
org.datanucleus.state.JDOStateManager.makePersistent(
JDOStateManager.java:3752)




*and calls Isis through a callback:*

org.datanucleus.api.jdo.JDOCallbackHandler.postStore(
JDOCallbackHandler.java:158)
   at



*Isis then attempts to synchronize its state with that of DataNucleus, and
fails fast because it's being asked to locate an object that it has never
seen before:*

Caused by: java.lang.RuntimeException:
org.apache.isis.core.commons.exceptions.IsisException: Object not yet
known to Isis: [value=1.000000000000000,  [name=1 hour,
[tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.
FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
   at
org.apache.isis.objectstore.jdo.datanucleus.persistence.
FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)


*The actual exception is thrown by FrameworkSynchronizer#ensureRootObject*

    void ensureRootObject(final PersistenceCapable pojo) {
        final ObjectAdapter adapter =
getAdapterManager().getAdapterFor(pojo);
        if(adapter == null) {
            throw new IsisException(MessageFormat.format("Object not yet
known to Isis: {0}", pojo));
        }




*This is a "fail fast" because, I think, it ought not to happen... if the
object was created using
DomainObjectContainer#createTransientInstance(...), then the pojo's adapter
would be in the AdapterManager.*

Could you put a break point on the failing line (in ensureRootObject) and
find out which object is not mapped, then see how that object is originally
instantiated (eg put a break point in that object's constructor and look
down the stacktrace).


Dan






On 13 December 2013 15:55, GESCONSULTOR - Óscar Bou
<o....@gesconsultor.com>wrote:

>
> Hi to all.
>
> While testing a part of our app, the following exception has been raised.
> It blocks the execution of any logic.
>
> Not sure about if it's a framework error or perhaps something regarding
> Isis Session management.
>
> Any help, please?
>
> Thanks,
>
> Oscar
>
>
>
>
> 16:40:05,021  [IsisTransaction      http-8094-7 INFO ]  abort
> transaction IsisTransaction@4ff9c1a1[state=MUST_ABORT,commands=0]
> 16:40:05,022  [JSONRPCController    http-8094-7 ERROR]  Exception
> executing consequence for rule "event handler: Asset Dimension Impact
> restored. Send emails" in com.xms.framework.monitoring.rules:
> java.lang.RuntimeException:
> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> known to Isis: [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
> com.xms.framework.api.exception.XMSRuntimeException: Exception executing
> consequence for rule "event handler: Asset Dimension Impact restored.
> Send emails" in com.xms.framework.monitoring.rules:
> java.lang.RuntimeException:
> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> known to Isis: [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>    at
>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:188)
>    at
>
> com.xms.framework.impl.devstudio.service.XMSDomainCustomizeMethodsService.realTimeDashboards_notifyServiceUp(XMSDomainCustomizeMethodsService.java:5422)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>    at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:597)
>    at
>
> com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:115)
>    at
>
> com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:293)
>    at
>
> com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:263)
>    at
>
> com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:109)
>    at
>
> com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:135)
>    at
>
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>    at
>
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>    at
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
>    at
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
>    at
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
>    at
>
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>    at
>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>    at
>
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
>    at
>
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>    at
>
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>    at
>
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>    at
>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>    at
>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>    at
>
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
>    at
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>    at
>
> org.apache.isis.core.webapp.IsisSessionFilter$SessionState$1.handle(IsisSessionFilter.java:320)
>    at
>
> org.apache.isis.core.webapp.IsisSessionFilter.doFilter(IsisSessionFilter.java:409)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>    at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>    at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>    at
>
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>    at
>
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>    at
>
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>    at
>
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>    at
>
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>    at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>    at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>    at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>    at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>    at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>    at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>    at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
>    at
>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
>    at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>    at java.lang.Thread.run(Thread.java:662)
> Caused by: Exception executing consequence for rule "event handler:
> Asset Dimension Impact restored. Send emails" in
> com.xms.framework.monitoring.rules: java.lang.RuntimeException:
> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> known to Isis: [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>    at
>
> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
>    at
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297)
>    at
> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
>    at
> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
>    at
>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
>    at
>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
>    at
>
> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
>    at
>
> com.xms.framework.monitoring.domain.model.realtime.server.RealTimeIntelligentMonitoringServer.insertCommand(RealTimeIntelligentMonitoringServer.java:51)
>    at
>
> com.xms.framework.monitoring.domain.model.realtime.dashboards.RealTimeDashboards.notifyServiceUp(RealTimeDashboards.java:389)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>    at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:597)
>    at
>
> org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetViaMethod.invoke(ActionInvocationFacetViaMethod.java:111)
>    at
>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:56)
>    at
>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction$1.execute(ActionInvocationFacetWrapTransaction.java:53)
>    at
>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>    at
>
> org.apache.isis.core.runtime.transaction.facets.ActionInvocationFacetWrapTransaction.invoke(ActionInvocationFacetWrapTransaction.java:53)
>    at
>
> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl.execute(ObjectActionImpl.java:345)
>    at
>
> com.xms.framework.devstudio.service.AbstractDevStudioDomainService.executeAction(AbstractDevStudioDomainService.java:183)
>    ... 73 more
> Caused by: java.lang.RuntimeException:
> org.apache.isis.core.commons.exceptions.IsisException: Object not yet
> known to Isis: [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:278)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:287)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postStoreProcessingFor(FrameworkSynchronizer.java:140)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$2.doRun(IsisLifecycleListener.java:95)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener$RunnableAbstract.run(IsisLifecycleListener.java:201)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.withLogging(IsisLifecycleListener.java:180)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener.postStore(IsisLifecycleListener.java:91)
>    at
>
> org.datanucleus.api.jdo.JDOCallbackHandler.postStore(JDOCallbackHandler.java:158)
>    at
>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3779)
>    at
>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2300)
>    at
>
> org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1348)
>    at
>
> org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:369)
>    at
> org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:401)
>    at
> org.datanucleus.store.rdbms.scostore.FKSetStore.addAll(FKSetStore.java:556)
>    at
>
> org.datanucleus.store.rdbms.mapping.java.CollectionMapping.postInsert(CollectionMapping.java:136)
>    at
>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:519)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>    at
>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>    at
>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>    at
>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>    at
>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>    at
>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>    at
>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>    at
>
> com.xms.framework.architecture.domain.model.valuation.ConsequencesByTimeAndCriterion.jdoProvideField(ConsequencesByTimeAndCriterion.java)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>    at
>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>    at
>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>    at
>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>    at
>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>    at
>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>    at
>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>    at
>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>    at
>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>    at
>
> com.xms.framework.architecture.domain.model.Asset.jdoProvideField(Asset.java)
>    at
>
> com.xms.framework.architecture.domain.model.Service.jdoProvideField(Service.java)
>    at
>
> com.xms.framework.architecture.domain.model.technology.InfrastructureService.jdoProvideField(InfrastructureService.java)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>    at
>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>    at
>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:163)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>    at
>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>    at
>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2294)
>    at
>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObjectAsValue(PersistableMapping.java:567)
>    at
>
> org.datanucleus.store.rdbms.mapping.java.PersistableMapping.setObject(PersistableMapping.java:326)
>    at
>
> org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:193)
>    at
>
> org.datanucleus.state.JDOStateManager.providedObjectField(JDOStateManager.java:1269)
>    at
>
> com.xms.framework.risk.domain.model.materialization.EventOccurrence.jdoProvideField(EventOccurrence.java)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObject.jdoProvideFields(AbstractXMSDomainObject.java)
>    at
>
> org.datanucleus.state.JDOStateManager.provideFields(JDOStateManager.java:1346)
>    at
>
> org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:289)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertTable(RDBMSPersistenceHandler.java:167)
>    at
>
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:143)
>    at
>
> org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:3776)
>    at
>
> org.datanucleus.state.JDOStateManager.makePersistent(JDOStateManager.java:3752)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2199)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:2045)
>    at
>
> org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1893)
>    at
>
> org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:727)
>    at
>
> org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)
>    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:361)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:355)
>    at
>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
>    at
>
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
>    at
>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
>    at
>
> org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7.flush(RuntimeContextFromSession.java:221)
>    at
>
> org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.flush(DomainObjectContainerDefault.java:229)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.doFindByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:525)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.access$900(AbstractXMSDomainObjectRepositoryAndFactory.java:37)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:513)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory$10.execute(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>    at
>
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByPropMultiTenant(AbstractXMSDomainObjectRepositoryAndFactory.java:509)
>    at
>
> com.xms.framework.common.domain.model.AbstractXMSDomainObjectRepositoryAndFactory.findByProp(AbstractXMSDomainObjectRepositoryAndFactory.java:502)
>    at
>
> com.xms.framework.common.domain.model.AbstractSingletonMultiTenantObjectRepositoryAndFactory.singletonInstance(AbstractSingletonMultiTenantObjectRepositoryAndFactory.java:16)
>    at
>
> com.xms.framework.monitoring.domain.model.architecture.AssetsMonitoringInformation.monitoringInformation(AssetsMonitoringInformation.java:12)
>    at
>
> com.xms.framework.monitoring.rules.SendNotificationEmailsForAssetMonitoringEvent.sendNotificationEmailsForAssetMonitoringEvent(SendNotificationEmailsForAssetMonitoringEvent.java:97)
>    at
>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.defaultConsequence(Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bc.java:9)
>    at
>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvokerGenerated.evaluate(Unknown
> Source)
>    at
>
> com.xms.framework.monitoring.rules.Rule_event_handler__Asset_Dimension_Impact_restored__Send_emails_d3be8ad20c3b4d609f66efe80ac6a5bcDefaultConsequenceInvoker.evaluate(Unknown
> Source)
>    at
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
>    ... 91 more
> Caused by: org.apache.isis.core.commons.exceptions.IsisException: Object
> not yet known to Isis: [value=1.000000000000000,  [name=1 hour,
> [tenantId=TENANT, [id=91FB2A32-BDC6-47A3-A67D-CE76FA4EF5EF, class
> name=com.xms.framework.architecture.domain.model.valuation.PointInTime]]]]
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.ensureRootObject(FrameworkSynchronizer.java:353)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$2.run(FrameworkSynchronizer.java:143)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:291)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$7.call(FrameworkSynchronizer.java:287)
>    at
>
> org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:276)
>    ... 184 more
>
>
>
>
>