-
Notifications
You must be signed in to change notification settings - Fork 56
Description
Query lists editor cells can be configured to execute model checking (by setting disable model checking to false). This is the default and there are many use cases of query lists, e.g. in mbeddr.doc embed model content as image elements.
The optimization done with PR #916 introduced a problem in this context: Due to the commented line in class ComputationModePreservingNonTypesystemChecker (which is basically a copy of NonTypesystemChecker.getErrors() except this one line) an assertion fails in MPS typesystem code (assertion dump see end of this description, recorded with MPS 2024.1).
Here are my code changes to find this ComputationModePreservingNonTypesystemChecker.
In the current code, the Throwable for the assertion is not catched and thus bubbles out of this method. It is shown in the querylist node as an unspecific message java.lang.AssertionError. See the foillowing example of this in com.mbeddr.doc (node URL).
I don't know the actual reason for PR #916, but it seems this should be either reverted or solved in a different way.
java.lang.AssertionError
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.applyNonTypesystemRulesToNode(NonTypeSystemComponent.java:327)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.applyRulesToRoot(NonTypeSystemComponent.java:316)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.lambda$applyNonTypeSystemRulesToRoot$1(NonTypeSystemComponent.java:301)
at jetbrains.mps.languageScope.LanguageScope.compute(LanguageScope.java:69)
at jetbrains.mps.languageScope.LanguageScopeExecutor.execWithModelScope(LanguageScopeExecutor.java:74)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.applyNonTypeSystemRulesToRoot(NonTypeSystemComponent.java:301)
at jetbrains.mps.newTypesystem.context.typechecking.IncrementalTypechecking.applyNonTypesystemRulesToRoot(IncrementalTypechecking.java:227)
at jetbrains.mps.newTypesystem.context.typechecking.BaseTypechecking.applyNonTypesystemRulesToRoot(BaseTypechecking.java:142)
at jetbrains.mps.newTypesystem.context.typechecking.BaseTypechecking.applyNonTypesystemRulesToRoot(BaseTypechecking.java:135)
at c.m.m.e.querylist.runtime//com.mbeddr.mpsutil.editor.querylist.runtime.plugin.ComputationModePreservingNonTypesystemChecker.lambda$getErrors$1(ComputationModePreservingNonTypesystemChecker.java:55)
at jetbrains.mps.typechecking.backend.TypecheckingSessionHandler.computeIsolated(TypecheckingSessionHandler.java:102)
at c.m.m.e.querylist.runtime//com.mbeddr.mpsutil.editor.querylist.runtime.plugin.ComputationModePreservingNonTypesystemChecker.getErrors(ComputationModePreservingNonTypesystemChecker.java:30)
at jetbrains.mps.typesystemEngine.checker.NonTypesystemChecker.check(NonTypesystemChecker.java:73)
at jetbrains.mps.typesystemEngine.checker.NonTypesystemChecker.check(NonTypesystemChecker.java:28)
at jetbrains.mps.checkers.IChecker$AbstractRootChecker$1.check(IChecker.java:153)
at jetbrains.mps.checkers.IChecker$AbstractRootChecker$1.check(IChecker.java:136)
at jetbrains.mps.checkers.IteratingChecker.check(IteratingChecker.java:92)
at jetbrains.mps.checkers.IChecker$AbstractRootChecker$2.check(IChecker.java:182)
at jetbrains.mps.checkers.IChecker$AbstractRootChecker$2.check(IChecker.java:168)
at jetbrains.mps.checkers.AggregatingChecker$2.lambda$run$0(AggregatingChecker.java:73)
at jetbrains.mps.smodel.WorkbenchModelAccess.runReadAction(WorkbenchModelAccess.java:91)
at jetbrains.mps.smodel.ModelAccessBase.runReadAction(ModelAccessBase.java:66)
at jetbrains.mps.smodel.ModelAccessHelper.runReadAction(ModelAccessHelper.java:49)
at jetbrains.mps.checkers.AggregatingChecker$2.run(AggregatingChecker.java:72)
at jetbrains.mps.progress.DefaultTaskScheduler$DirectExecutor.execute(DefaultTaskScheduler.java:74)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$execute$2(DefaultTaskScheduler.java:51)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleAllSequential$1(DefaultTaskScheduler.java:35)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleAllSequential$1(DefaultTaskScheduler.java:35)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleAllSequential$1(DefaultTaskScheduler.java:35)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleAllSequential$1(DefaultTaskScheduler.java:35)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleAllSequential$1(DefaultTaskScheduler.java:35)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleTask$0(DefaultTaskScheduler.java:27)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleAllSequential$1(DefaultTaskScheduler.java:35)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleAllSequential$1(DefaultTaskScheduler.java:35)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.progress.DefaultTaskScheduler.runAndWait(DefaultTaskScheduler.java:59)
at jetbrains.mps.progress.DefaultTaskScheduler.lambda$scheduleTask$0(DefaultTaskScheduler.java:27)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at jetbrains.mps.checkers.ModelCheckerBuilder$1.check(ModelCheckerBuilder.java:151)
at jetbrains.mps.checkers.ModelCheckerBuilder$1.check(ModelCheckerBuilder.java:144)
at c.m.m.e.querylist.runtime//com.mbeddr.mpsutil.editor.querylist.runtime.plugin.QueryListChecker.checkForNodeMessages(QueryListChecker.java:143)
at c.m.m.e.querylist.runtime//com.mbeddr.mpsutil.editor.querylist.runtime.plugin.QueryListChecker.checkModels(QueryListChecker.java:124)
at c.m.m.e.querylist.runtime//com.mbeddr.mpsutil.editor.querylist.runtime.plugin.QueryListChecker.update(QueryListChecker.java:79)
at jetbrains.mps.nodeEditor.checking.EditorChecker.update(EditorChecker.java:70)
at jetbrains.mps.nodeEditor.highlighter.HighlighterUpdateSession$HighlighterReadAction.perform(HighlighterUpdateSession.java:317)
at jetbrains.mps.nodeEditor.highlighter.EditorCheckerWrapper.withChecker(EditorCheckerWrapper.java:69)
at jetbrains.mps.nodeEditor.highlighter.HighlighterUpdateSession$HighlighterReadAction.execute(HighlighterUpdateSession.java:311)
at jetbrains.mps.smodel.CancellableReadAction.run(CancellableReadAction.java:86)
at jetbrains.mps.smodel.ActionDispatcher.dispatch(ActionDispatcher.java:98)
at jetbrains.mps.smodel.ActionDispatcher.lambda$wrap$0(ActionDispatcher.java:135)
at jetbrains.mps.smodel.LockRunnable.run(LockRunnable.java:60)
at jetbrains.mps.smodel.PlatformCancelBlock.run(PlatformCancelBlock.java:22)
at com.intellij.openapi.application.impl.RwLockHolder.runReadAction(RwLockHolder.kt:254)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:840)
at jetbrains.mps.smodel.WorkbenchModelAccess.runReadAction(WorkbenchModelAccess.java:95)
at jetbrains.mps.smodel.ModelAccessBase.runReadAction(ModelAccessBase.java:66)
at jetbrains.mps.nodeEditor.highlighter.HighlighterUpdateSession.updateEditor(HighlighterUpdateSession.java:218)
at jetbrains.mps.nodeEditor.highlighter.HighlighterUpdateSession.updateEditorComponent(HighlighterUpdateSession.java:185)
at jetbrains.mps.nodeEditor.highlighter.HighlighterUpdateSession.lambda$doUpdate$0(HighlighterUpdateSession.java:100)
at jetbrains.mps.typechecking.backend.TypecheckingSessionHandler.runWithSession(TypecheckingSessionHandler.java:76)
at jetbrains.mps.nodeEditor.highlighter.HighlighterUpdateSession.doUpdate(HighlighterUpdateSession.java:98)
at jetbrains.mps.nodeEditor.highlighter.HighlighterUpdateSession.update(HighlighterUpdateSession.java:257)
at jetbrains.mps.nodeEditor.Highlighter$ScheduleHighlighterUpdate.update(Highlighter.java:490)
at jetbrains.mps.nodeEditor.Highlighter$ScheduleHighlighterUpdate.lambda$run$0(Highlighter.java:471)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)

