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 <[email protected]>
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 <[email protected]>
> 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
>> <[email protected]>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 <[email protected]>
>>> 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
>>>> <[email protected]>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 <[email protected]>
>>>>> 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
>>>>>> <[email protected]>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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>>
>