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 <d...@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....@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 <d...@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 <d...@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 < >> d...@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 >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>> >> >>