typedb / typedb-studio

TypeDB Studio (IDE)
https://typedb.com
Mozilla Public License 2.0
197 stars 44 forks source link

Crash upon saving file in another editor #701

Open izmalk opened 1 year ago

izmalk commented 1 year ago

Description

Studio crashed as soon as I used CMD + S in Sublime Text Editor on the file, opened in Studio.

Environment

  1. TypeDB version: Experimental (it says 2.14.3, but it is from this tech build)
  2. OS of TypeDB server: MacOS 3.1 (22C65)
  3. Studio version: 2.14.2
  4. OS of Studio: MacOS 3.1 (22C65)
  5. Other environment details:

Reproducible Steps

I have done this:

  1. Open file in Studio and Sublime
  2. Edited in Sublime but didn't save it yet
  3. Edited it in Studio and saved
  4. After some time (a few hours) I opened Sublime from the background and found the file unsaved. Did nothing
  5. Opened Studio from the background and opened the tab with the file.
  6. Opened Sublime again and pushed CMD + S (Save). Immediately got a crash in Studio. Sublime saved the file no problem

Expected Output

Studio to renew the file contents from SSD.

Actual Output

Studio crashed (see below). After I clicked the reopen button it opened with this error message:

[PRJ25] TypeDB Studio Project: Content of file /Users/izmalk/test2/IAM/load_data_queries/user-queries.tql on the filesystem has changed, and has been reloaded in Studio.

Additional information

Title: Unsupported concurrent change during composition. A state object was modified by composition as well as being modified outside composition.
Trace: java.lang.IllegalStateException: Unsupported concurrent change during composition. A state object was modified by composition as well as being modified outside composition.
    at androidx.compose.runtime.Recomposer.applyAndCheck(Recomposer.kt:825)
    at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:1092)
    at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:105)
    at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:456)
    at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:425)
    at androidx.compose.runtime.BroadcastFrameClock$FrameAwaiter.resume(BroadcastFrameClock.kt:42)
    at androidx.compose.runtime.BroadcastFrameClock.sendFrame(BroadcastFrameClock.kt:71)
    at androidx.compose.ui.ComposeScene.render(ComposeScene.skiko.kt:351)
    at androidx.compose.ui.awt.ComposeLayer$1$onRender$1.invoke(ComposeLayer.desktop.kt:229)
    at androidx.compose.ui.awt.ComposeLayer$1$onRender$1.invoke(ComposeLayer.desktop.kt:227)
    at androidx.compose.ui.awt.ComposeLayer.catchExceptions(ComposeLayer.desktop.kt:89)
    at androidx.compose.ui.awt.ComposeLayer.access$catchExceptions(ComposeLayer.desktop.kt:70)
    at androidx.compose.ui.awt.ComposeLayer$1.onRender(ComposeLayer.desktop.kt:227)
    at org.jetbrains.skiko.SkiaLayer.update$skiko(SkiaLayer.awt.kt:438)
    at org.jetbrains.skiko.redrawer.MetalRedrawer.update(MetalRedrawer.kt:66)
    at org.jetbrains.skiko.redrawer.MetalRedrawer.access$update(MetalRedrawer.kt:13)
    at org.jetbrains.skiko.redrawer.MetalRedrawer$frameDispatcher$1.invokeSuspend(MetalRedrawer.kt:38)
    at org.jetbrains.skiko.redrawer.MetalRedrawer$frameDispatcher$1.invoke(MetalRedrawer.kt)
    at org.jetbrains.skiko.redrawer.MetalRedrawer$frameDispatcher$1.invoke(MetalRedrawer.kt)
    at org.jetbrains.skiko.FrameDispatcher$job$1.invokeSuspend(FrameDispatcher.kt:33)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Unknown Source)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
izmalk commented 1 year ago

Снимок экрана 2023-01-30 в 23 13 48 user-queries.tql.zip