platform issueshttps://gitlab.simantics.org/simantics/platform/-/issues2022-11-24T09:28:14Zhttps://gitlab.simantics.org/simantics/platform/-/issues/821Move LifeCycleProcess definitions from Modeling to DB Common2022-11-24T09:28:14ZAntti VillbergMove LifeCycleProcess definitions from Modeling to DB CommonAntti VillbergAntti Villberghttps://gitlab.simantics.org/simantics/platform/-/issues/819ActivateExperimentAction should only activate experiments that adapt to IModel2022-11-24T09:28:14ZAntti VillbergActivateExperimentAction should only activate experiments that adapt to IModelAntti VillbergAntti Villberghttps://gitlab.simantics.org/simantics/platform/-/issues/818GlobalModeledToolbarActions do not show2022-11-24T09:28:14ZAntti VillbergGlobalModeledToolbarActions do not showDunno what has happened but lately contributions fail to show upDunno what has happened but lately contributions fail to show upAntti VillbergAntti Villberghttps://gitlab.simantics.org/simantics/platform/-/issues/812Spreadsheet improvements2022-11-24T09:28:14ZAntti VillbergSpreadsheet improvementsAntti VillbergAntti Villberghttps://gitlab.simantics.org/simantics/platform/-/issues/808Remove dublincore.ontology from standard features2023-12-04T19:49:33ZTuukka LehtonenRemove dublincore.ontology from standard features`org.simantics.dublincore.ontology` can be kept in the P2 repository but there's really no point in including it in every single Simantics app as such.`org.simantics.dublincore.ontology` can be kept in the P2 repository but there's really no point in including it in every single Simantics app as such.1.59.0Tuukka LehtonenTuukka Lehtonenhttps://gitlab.simantics.org/simantics/platform/-/issues/788Identifier literals created by OntologicalRequirementEnforceRequest do not ge...2021-12-28T11:08:07ZTuukka LehtonenIdentifier literals created by OntologicalRequirementEnforceRequest do not get indexedRelated to #786.
Noticed this with the action that creates a new user component. It does not add an `L0.identifier` property for any entity in the created UC material so `OntologicalRequirementEnforceRequest` will create them. However t...Related to #786.
Noticed this with the action that creates a new user component. It does not add an `L0.identifier` property for any entity in the created UC material so `OntologicalRequirementEnforceRequest` will create them. However this happens after the initial UC material has been indexed by `DependenciesRelation` and none of the changes performed by the enforcer are indexed because the request disables indexing for performance and possible loopback effect reasons.
I tested separating the identifier creation into a separate request that gets indexed. However this didn't work properly either not all entities that were given an identifier were registered by `DependenciesRelation` as changed. Didn't debug this further.
This issue is dedicated to actually fixing this problem for good instead of working around it.https://gitlab.simantics.org/simantics/platform/-/issues/782Build minimal linux docker container with simantics desktop products and the ...2021-12-15T14:35:25ZTuukka LehtonenBuild minimal linux docker container with simantics desktop products and the SDK repositoryThe simplest way to continuously analyze the state of CVEs in the current Simantics platform would seem to be:
1. Build a minimal linux docker container that includes Simantics Desktop the JRE version used with the current platform and t...The simplest way to continuously analyze the state of CVEs in the current Simantics platform would seem to be:
1. Build a minimal linux docker container that includes Simantics Desktop the JRE version used with the current platform and the Simantics SDK repository.
2. Push the image to Harbor and let it scan the image for vulnerabilitiesTuukka LehtonenTuukka Lehtonenhttps://gitlab.simantics.org/simantics/platform/-/issues/778Cut-pasting in Model Browser does not find unique names for pasted resources2021-11-29T12:44:03ZJussi KoskelaCut-pasting in Model Browser does not find unique names for pasted resourcesExample: Cut and paste SCLMain to another model which already has SCLMain. The target model will have two resources with the same name.
The problem is here:
org.simantics.db.layer0.adapter.impl.DefaultPasteHandler.pasteFromClipboard(Wr...Example: Cut and paste SCLMain to another model which already has SCLMain. The target model will have two resources with the same name.
The problem is here:
org.simantics.db.layer0.adapter.impl.DefaultPasteHandler.pasteFromClipboard(WriteGraph, SimanticsClipboard, PasteEventHandler)
```
Layer0 L0 = Layer0.getInstance(graph);
for(Resource r : cut) {
graph.deny(r, L0.PartOf);
graph.claim(resource, L0.ConsistsOf, L0.PartOf, r);
result.add(r);
}
```https://gitlab.simantics.org/simantics/platform/-/issues/769Index initialization fails unexpectedly during platform startup2021-11-08T09:27:44ZTuukka LehtonenIndex initialization fails unexpectedly during platform startupReceived problem report contained the following exception. We have seen these index initialization problems before but they have been hard to replicate and debug.
The stack trace seems to be missing some of the most inner stack frames.
...Received problem report contained the following exception. We have seen these index initialization problems before but they have been hard to replicate and debug.
The stack trace seems to be missing some of the most inner stack frames.
```
org.simantics.PlatformException: org.simantics.project.exception.ProjectException: org.simantics.db.exception.DatabaseException: org.simantics.db.layer0.genericrelation.IndexException: Searcher is in problematic state
Caused by: org.simantics.project.exception.ProjectException: org.simantics.db.exception.DatabaseException: org.simantics.db.layer0.genericrelation.IndexException: Searcher is in problematic state
at org.simantics.modeling.LifeCycleProcesses.configure(LifeCycleProcesses.java:61)
at org.simantics.project.impl.Project.activate(Project.java:124)
at org.simantics.SimanticsPlatform.startUp(SimanticsPlatform.java:913)
at org.simantics.workbench.internal.SimanticsWorkbenchAdvisor.startPlatform(SimanticsWorkbenchAdvisor.java:438)
at org.simantics.workbench.internal.SimanticsWorkbenchAdvisor.openWindows(SimanticsWorkbenchAdvisor.java:328)
at org.eclipse.ui.internal.Workbench$19.runWithException(Workbench.java:1690)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:144)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4889)
at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:95)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1682)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2848)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:667)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.simantics.workbench.internal.SimanticsWorkbenchApplication.start(SimanticsWorkbenchApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
Caused by: org.simantics.db.exception.DatabaseException: org.simantics.db.layer0.genericrelation.IndexException: Searcher is in problematic state
at org.simantics.db.impl.query.CacheEntryBase.checkAndThrow(CacheEntryBase.java:123)
at org.simantics.db.impl.query.ReadEntry.get(ReadEntry.java:154)
at org.simantics.db.impl.query.QueryProcessor.performForEach(QueryProcessor.java:1068)
at org.simantics.db.impl.query.QueryProcessor.queryRead(QueryProcessor.java:858)
at org.simantics.db.impl.graph.ReadGraphImpl.syncRequest(ReadGraphImpl.java:2027)
at org.simantics.db.impl.graph.ReadGraphImpl.syncRequest(ReadGraphImpl.java:2014)
at org.simantics.modeling.ModelingUtils.searchByTypeShallow(ModelingUtils.java:756)
at org.simantics.modeling.LifeCycleProcesses$1.run(LifeCycleProcesses.java:35)
at org.simantics.db.common.request.ReadRequest.perform(ReadRequest.java:21)
at fi.vtt.simantics.procore.internal.SessionImplSocket$6.run(SessionImplSocket.java:1541)
at fi.vtt.simantics.procore.internal.SessionRequestManager$1.run(SessionRequestManager.java:123)
at org.simantics.db.impl.query.QueryThread.run(QueryThread.java:251)
Caused by: org.simantics.db.layer0.genericrelation.IndexException: Searcher is in problematic state
at org.simantics.db.indexing.IndexedRelationsImpl.waitLoaded(IndexedRelationsImpl.java:160)
at org.simantics.db.indexing.IndexedRelationsImpl.queryResources(IndexedRelationsImpl.java:308)
at org.simantics.db.layer0.genericrelation.DependenciesRelation.queryResources(DependenciesRelation.java:253)
at org.simantics.db.layer0.genericrelation.DependencyResources.apply(DependencyResources.java:70)
at org.simantics.db.layer0.genericrelation.DependencyResources.apply(DependencyResources.java:54)
at org.simantics.db.layer0.genericrelation.DependencyResources.apply(DependencyResources.java:1)
at org.simantics.db.layer0.adapter.impl.EntityInstances$QueryIndex.perform(EntityInstances.java:86)
at org.simantics.db.layer0.adapter.impl.EntityInstances$QueryIndex.perform(EntityInstances.java:1)
at org.simantics.db.impl.query.QueryProcessor.performForEach(QueryProcessor.java:1058)
... 9 more
Caused by: java.lang.IllegalStateException: Immutable index cannot be cleared
```https://gitlab.simantics.org/simantics/platform/-/issues/763Failing WriteOnlyGraph may close database session2023-03-31T07:00:39ZMarko LuukkainenFailing WriteOnlyGraph may close database sessionAfter failed Write only:
```
INFO [2021-10-27 13:31:15,877] org.simantics.acorn.GraphClientImpl2: executorTerminated=true, saverTerminated=true
ERROR [2021-10-27 13:31:15,881] org.simantics.db.impl.query.QueryThread: FATAL BUG: QueryThr...After failed Write only:
```
INFO [2021-10-27 13:31:15,877] org.simantics.acorn.GraphClientImpl2: executorTerminated=true, saverTerminated=true
ERROR [2021-10-27 13:31:15,881] org.simantics.db.impl.query.QueryThread: FATAL BUG: QueryThread task processing caused unexpected exception.
java.lang.IllegalStateException: fi.vtt.simantics.procore.internal.SessionImplDb@12d44a2a: writeCount=0
at fi.vtt.simantics.procore.internal.State.commitWriteTransaction(State.java:365)
... 3 common frames omitted
Wrapped by: java.lang.IllegalStateException: java.lang.IllegalStateException: fi.vtt.simantics.procore.internal.SessionImplDb@12d44a2a: writeCount=0
at fi.vtt.simantics.procore.internal.State.commitWriteTransaction(State.java:394)
at fi.vtt.simantics.procore.internal.SessionRequestManager$4.run0(SessionRequestManager.java:236)
at org.simantics.db.impl.query.QueryProcessor$SessionTask.run(QueryProcessor.java:231)
at org.simantics.db.impl.query.QueryThread.run(QueryThread.java:238)
```
After that:
```
org.simantics.db.exception.RuntimeDatabaseException: Session has been shut down.
at fi.vtt.simantics.procore.internal.SessionImplSocket.assertAlive(SessionImplSocket.java:3403)
```
Executed code:
```
public static Resource write(WriteOnlyGraph graph, PipeSystem system) throws DatabaseException {
Resource systemResource = graph.newResource();
graph.claim(systemResource, L0.InstanceOf, null, idf.PipeSystem);
```
Which failed on second line, since `L0 = null`.https://gitlab.simantics.org/simantics/platform/-/issues/760Propagation of changes in query cache fails after WriteOnly when new clusters...2023-01-20T08:33:07ZReino RuusuPropagation of changes in query cache fails after WriteOnly when new clusters are createdResult 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.fo...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)
```Reino RuusuReino Ruusuhttps://gitlab.simantics.org/simantics/platform/-/issues/7591.48.0.1 release engineering2021-12-01T21:11:21ZTuukka Lehtonen1.48.0.1 release engineeringBranched for Apros 6.11 SR1 development.
Branched projects:
* [X] simantics/third-party@09bcc9836725c3e23d63bf86737ee3977e84c835
* [X] simantics/platform@9ac34069851464d871b8da2c6bffb14e51ea3439
* [X] simantics/fmil@9b5ca30f0f55d1df1956...Branched for Apros 6.11 SR1 development.
Branched projects:
* [X] simantics/third-party@09bcc9836725c3e23d63bf86737ee3977e84c835
* [X] simantics/platform@9ac34069851464d871b8da2c6bffb14e51ea3439
* [X] simantics/fmil@9b5ca30f0f55d1df1956f91d4e164c7dee518985
* [X] simantics/matlab@d38167bd02ef5444001de03fc707dd41e887d70b
* [X] simantics/python@198a857f9926ade291a4d7b3d47ee0d273cf9d0e
* [X] simantics/r@e5df6b1977f9762542489e36207ec1d0a6a7caa3
* [X] simantics/interop@c0baa082ff6e7a79cd8187e318bfdd0a60a4beb5
* [X] simantics/3d@41fe4535d5074a897ed8b4b02ed92e2ad63617a2
* [X] simantics/district@8c1fbc9de7bf10b3ffdf963e76c5a645a4eacc38
* [X] members/simupedia@cac87eb3efff7f92dd7e71fdac0b08364cbbbf9f
* [X] members/fmi@26d9cee724c62401ed17668c13fa33b9ebf2e8e8
* [X] simantics/sysdyn@496cf5005198fed690cb8963ff9c835f4cedd139
* [X] gold-members/proteus@cb422b5f447a4b7925aa044e7a0d14b6af7919e4Tuukka LehtonenTuukka Lehtonenhttps://gitlab.simantics.org/simantics/platform/-/issues/719Typical diagram synchronization rule for drawing template setting2021-12-01T21:12:07ZTuukka LehtonenTypical diagram synchronization rule for drawing template settingSometimes it would be useful to optionally synchronize typical instance drawing template settings from the template.Sometimes it would be useful to optionally synchronize typical instance drawing template settings from the template.Tuukka LehtonenTuukka Lehtonenhttps://gitlab.simantics.org/simantics/platform/-/issues/691Revert 1.43.0-CVM2 branch to initial state2021-04-14T06:39:23ZJussi KoskelaRevert 1.43.0-CVM2 branch to initial stateJussi KoskelaJussi Koskelahttps://gitlab.simantics.org/simantics/platform/-/issues/685Diagram tools align elements incorrectly when both parent and child elements ...2021-04-01T10:19:57ZJussi KoskelaDiagram tools align elements incorrectly when both parent and child elements are selectedhttps://gitlab.simantics.org/simantics/platform/-/issues/684Child element transformation handled incorrectly when using MouseScaleMode an...2021-04-01T10:17:21ZJussi KoskelaChild element transformation handled incorrectly when using MouseScaleMode and both parent and child element are selectedhttps://gitlab.simantics.org/simantics/platform/-/issues/683Improve PDFSearchParticipant2021-12-01T21:04:31ZTuukka LehtonenImprove PDFSearchParticipantIt turned out [PDFSearchParticipant](bundles/org.simantics.help.base/src/org/simantics/help/base/internal/PDFSearchParticipant.java) actually works but it is taken into use for PDF help contributing bundles unless they contain a `binding...It turned out [PDFSearchParticipant](bundles/org.simantics.help.base/src/org/simantics/help/base/internal/PDFSearchParticipant.java) actually works but it is taken into use for PDF help contributing bundles unless they contain a `binding` like this:
```xml
<extension
point="org.eclipse.help.base.searchParticipant">
<binding
participantId="org.simantics.help.base.pdf">
</binding>
</extension>
```
which tells the help system to actually use the specified search participant for the extension-defining bundle.
Improvements to the actual indexing logic are made in this issue.Tuukka LehtonenTuukka Lehtonenhttps://gitlab.simantics.org/simantics/platform/-/issues/676TextElementHandler bounds calculation doers not take account paddings2022-08-18T10:33:24ZMarko LuukkainenTextElementHandler bounds calculation doers not take account paddings1.43.1Marko LuukkainenMarko Luukkainenhttps://gitlab.simantics.org/simantics/platform/-/issues/665Restricted SCL environment2021-01-04T15:57:15ZMarko LuukkainenRestricted SCL environmentCurrently several Simantics based applications use SCL scripts for customization.
Unfortunately, this is currently unsafe, because we do not have means to restrict th functions that uses can use. Here is an example from a certain produc...Currently several Simantics based applications use SCL scripts for customization.
Unfortunately, this is currently unsafe, because we do not have means to restrict th functions that uses can use. Here is an example from a certain product as a customizable transformation rule:
```
import "nn/Proteus/ExtractionRulesUtils/Common"
importJava "java.lang.System" where
exit :: Integer -> <Proc> ()
propertyRule :: PropertyRule
propertyRule = extract do
exit(-100)
```
Executing the above rule as part of a model transformation closes the Simantics DB instance (DOS attack).https://gitlab.simantics.org/simantics/platform/-/issues/664Move Tools/SearchSCL SCL module from Simupedia to platform2023-12-04T19:50:11ZTuukka LehtonenMove Tools/SearchSCL SCL module from Simupedia to platform`searchSCL` is very useful and it has absolutely no dependency on Simupedia and should be promoted to the platform.`searchSCL` is very useful and it has absolutely no dependency on Simupedia and should be promoted to the platform.1.59.0Tuukka LehtonenTuukka Lehtonen