Propagation of changes in query cache fails after WriteOnly when new clusters are created
Result is an attempt to perform the cache updates using a ClusterWriteOnly instance, resulting in an exception:
org.simantics.db.exception.DatabaseException: Not implemented.
at fi.vtt.simantics.procore.internal.ClusterWriteOnly.forObjects(ClusterWriteOnly.java:250)
at fi.vtt.simantics.procore.internal.QuerySupportImpl.getObjects(QuerySupportImpl.java:588)
at org.simantics.db.impl.query.PrincipalTypes.computeForEach2(PrincipalTypes.java:150)
at org.simantics.db.impl.query.PrincipalTypes.computeForEach(PrincipalTypes.java:84)
at org.simantics.db.impl.query.QueryCache.runnerPrincipalTypes(QueryCache.java:498)
at org.simantics.db.impl.query.Objects.getAssertionMap(Objects.java:111)
at org.simantics.db.impl.query.Objects.forSingleAssertion(Objects.java:119)
at org.simantics.db.impl.query.Objects.computeFunctionalIndex(Objects.java:263)
at org.simantics.db.impl.query.Objects.computeForEach(Objects.java:603)
at org.simantics.db.impl.query.QueryCache.runnerObjects(QueryCache.java:78)
at org.simantics.db.impl.query.ChildMap$1.execute(ChildMap.java:86)
at org.simantics.db.impl.query.Objects.performFromCache(Objects.java:628)
at org.simantics.db.impl.query.QueryCache.runnerObjects(QueryCache.java:73)
at org.simantics.db.impl.query.ChildMap.computeForEach2(ChildMap.java:69)
at org.simantics.db.impl.query.ChildMap.computeForEach(ChildMap.java:46)
at org.simantics.db.impl.query.QueryCache.runnerChildMap(QueryCache.java:899)
at org.simantics.db.impl.query.QueryCacheBase.resultChildMap(QueryCacheBase.java:964)
at org.simantics.db.impl.graph.ReadGraphImpl.getChildren(ReadGraphImpl.java:359)
at org.simantics.db.common.uri.UnescapedChildMapOfResource.perform(UnescapedChildMapOfResource.java:29)
at org.simantics.db.common.uri.UnescapedChildMapOfResource.perform(UnescapedChildMapOfResource.java:1)
at org.simantics.db.impl.query.ReadEntry.computeForEach(ReadEntry.java:112)
at org.simantics.db.impl.query.QueryCache.runnerReadEntry(QueryCache.java:697)
at org.simantics.db.impl.graph.ReadGraphImpl.syncRequest(ReadGraphImpl.java:1961)
at org.simantics.db.layer0.function.All.getPossibleGraphChild(All.java:767)
at org.simantics.db.layer0.function.StandardChildDomainChildren.getStandardChildDomainChildVariable(StandardChildDomainChildren.java:29)
at org.simantics.db.layer0.function.All$5.getVariable(All.java:897)
at org.simantics.db.layer0.variable.StandardGraphChildVariable.getPossibleChild(StandardGraphChildVariable.java:77)
at org.simantics.db.layer0.variable.AbstractVariable.getChild(AbstractVariable.java:555)
at org.simantics.db.layer0.request.ResourceURIToVariable.perform(ResourceURIToVariable.java:34)
at org.simantics.db.layer0.request.ResourceURIToVariable.perform(ResourceURIToVariable.java:1)
at org.simantics.db.impl.query.ReadEntry$1.recompute(ReadEntry.java:60)
at org.simantics.db.impl.query.QueryProcessor.compareTo(QueryProcessor.java:1370)
at org.simantics.db.impl.query.QueryProcessor.update(QueryProcessor.java:1466)
at org.simantics.db.impl.query.QueryProcessor.updateRefutations(QueryProcessor.java:1512)
at org.simantics.db.impl.query.QueryProcessor.propagateChangesInQueryCache(QueryProcessor.java:1701)
at fi.vtt.simantics.procore.internal.WriteSupportImpl.performWriteRequest(WriteSupportImpl.java:324)
at org.simantics.db.impl.graph.WriteGraphImpl.syncRequest(WriteGraphImpl.java:384)
at org.simantics.db.impl.graph.WriteGraphImpl.syncRequest(WriteGraphImpl.java:355)