When pressing the undo button in studio UI designer the following error is thrown after which the contents of the XML descriptor file is wiped.
java.lang.Throwable: Must not start write action from within read action in the other thread - deadlock is coming
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:134)
at com.intellij.openapi.command.WriteCommandAction.execute(WriteCommandAction.java:238)
at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:126)
at com.haulmont.studio.ui.sd.layout.ScreenLayoutDesigner.lambda$activate$5(SourceFile:356)
at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:53)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:973)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:57)
at com.intellij.openapi.application.ReadAction.run(ReadAction.java:53)
at com.haulmont.studio.ui.sd.layout.ScreenLayoutDesigner.activate(SourceFile:348)
at com.haulmont.studio.intellij.ui.sd.ScreenDesignerEditor.lambda$activatePanel$0(SourceFile:46)
at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:53)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:977)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:57)
at com.intellij.openapi.application.ReadAction.run(ReadAction.java:53)
at com.haulmont.studio.intellij.ui.sd.ScreenDesignerEditor.activatePanel(SourceFile:35)
at com.haulmont.studio.intellij.ui.sd.ScreenDesignerEditor.activatePanel(SourceFile:16)
at com.haulmont.studio.intellij.ui.AbstractVaadinEditor.lambda$null$0(SourceFile:57)
at com.vaadin.ui.UI.accessSynchronously(UI.java:1392)
at com.haulmont.studio.intellij.ui.AbstractVaadinEditor.trySynchronously(SourceFile:91)
at com.haulmont.studio.intellij.ui.AbstractVaadinEditor.lambda$selectNotify$1(SourceFile:57)
at com.haulmont.studio.intellij.ui.browser.WebBrowser.lambda$loadEditor$6(SourceFile:199)
at com.haulmont.studio.ui.app.EditorPanelStorage.register(SourceFile:35)
at com.haulmont.studio.ui.app.MainUi.createAndRegisterDesigner(SourceFile:115)
at com.haulmont.studio.ui.app.MainUi.init(SourceFile:85)
at com.vaadin.ui.UI.doInit(UI.java:693)
at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:222)
at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:74)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1435)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361)
at com.haulmont.studio.ui.app.StudioApplicationServlet.service(SourceFile:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)