Hello! Intellij 2026.1 is reporting an error sometimes when I try to edit an entity in the GUI. For example, when I create an attribute and then inmediately I try to change its data type to something else, it says “IDE error occurred” . It happens at random times and occurs in previous and latest jmix studio.
ERRORS and attachments:
com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Read access is allowed from inside read-action only (see Application.runReadAction()); If you access or modify model on EDT consider wrapping your code in WriteIntentReadAction or ReadAction; see Threading Model | IntelliJ Platform Plugin SDK for details
Current thread: Thread[#61,AWT-EventQueue-0,6,main] 1046694977 (EventQueue.isDispatchThread()=true)
SystemEventQueueThread: (same)
at com.intellij.util.concurrency.ThreadingAssertions.createThreadAccessException(ThreadingAssertions.java:270)
at com.intellij.util.concurrency.ThreadingAssertions.softAssertReadAccess(ThreadingAssertions.java:159)
at com.intellij.openapi.application.impl.ApplicationImpl.assertReadAccessAllowed(ApplicationImpl.java:1219)
at com.intellij.psi.impl.source.tree.TreeElement.assertReadAccessAllowed(TreeElement.java:437)
at com.intellij.psi.impl.source.tree.LazyParseableElement.ensureParsed(LazyParseableElement.java:175)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:234)
at com.intellij.psi.impl.source.JavaDummyElement.getFirstChildNode(JavaDummyElement.java:69)
at com.intellij.psi.impl.PsiJavaParserFacadeImpl.createAnnotationFromText(PsiJavaParserFacadeImpl.java:155)
at com.intellij.psi.impl.PsiElementFactoryImpl.createAnnotationFromText(PsiElementFactoryImpl.java:730)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.printConstraint(BeanValidationLayout.java:221)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.init(BeanValidationLayout.java:186)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.refresh(BeanValidationLayout.java:249)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.propertiespanel.actions.BeanValidationAction.fire(BeanValidationAction.kt:14)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.JmixAttributeForm.lambda$attachField$0(JmixAttributeForm.java:105)
at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:336)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange0(ExtendedPropertyChangeSupport.java:281)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:223)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:178)
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange0(ExtendedPropertyChangeSupport.java:295)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:260)
at com.jgoodies.binding.beans.Model.firePropertyChange(Model.java:117)
at com.haulmont.jmixstudio.ui.propertyform.FormValueModel.lambda$setValue$0(FormValueModel.java:40)
at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:249)
at com.haulmont.jmixstudio.ui.propertyform.FormValueModel.setValue(FormValueModel.java:40)
at com.jgoodies.binding.value.ConverterValueModel.setValue(ConverterValueModel.java:101)
at com.jgoodies.binding.adapter.ComboBoxAdapter.setSelectedItem(ComboBoxAdapter.java:258)
at java.desktop/javax.swing.JComboBox.setSelectedItem(JComboBox.java:609)
at com.haulmont.jmixstudio.ui.entity.SGroupCombo.setSelectedItem(SGroupCombo.java:140)
at java.desktop/javax.swing.JComboBox.setSelectedIndex(JComboBox.java:654)
at java.desktop/javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:946)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:300)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6631)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3400)
at java.desktop/javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:551)
at java.desktop/java.awt.Component.processEvent(Component.java:6396)
at java.desktop/java.awt.Container.processEvent(Container.java:2260)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4932)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4562)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4503)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:734)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:720)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:626)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:557)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0$0(IdeEventQueue.kt:381)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:928)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:380)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1110)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1110)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:375)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:415)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Read access is allowed from inside read-action only (see Application.runReadAction()); If you access or modify model on EDT consider wrapping your code in WriteIntentReadAction or ReadAction; see Threading Model | IntelliJ Platform Plugin SDK for details
Current thread: Thread[#61,AWT-EventQueue-0,6,main] 1046694977 (EventQueue.isDispatchThread()=true)
SystemEventQueueThread: (same)
at com.intellij.util.concurrency.ThreadingAssertions.createThreadAccessException(ThreadingAssertions.java:270)
at com.intellij.util.concurrency.ThreadingAssertions.softAssertReadAccess(ThreadingAssertions.java:159)
at com.intellij.openapi.application.impl.ApplicationImpl.assertReadAccessAllowed(ApplicationImpl.java:1219)
at com.intellij.psi.impl.source.tree.TreeElement.assertReadAccessAllowed(TreeElement.java:437)
at com.intellij.psi.impl.source.tree.CompositeElement.getChildrenAsPsiElements(CompositeElement.java:423)
at com.intellij.psi.impl.source.tree.java.PsiReferenceParameterListImpl.getTypeParameterElements(PsiReferenceParameterListImpl.java:54)
at com.intellij.psi.impl.source.codeStyle.JavaReferenceAdjuster.process(JavaReferenceAdjuster.java:83)
at com.intellij.psi.impl.source.codeStyle.JavaReferenceAdjuster.process(JavaReferenceAdjuster.java:160)
at com.intellij.psi.impl.source.codeStyle.JavaReferenceAdjuster.process(JavaReferenceAdjuster.java:185)
at com.intellij.psi.impl.source.codeStyle.JavaCodeStyleManagerImpl.shortenClassReferences(JavaCodeStyleManagerImpl.java:149)
at com.intellij.psi.impl.source.codeStyle.JavaCodeStyleManagerImpl.shortenClassReferences(JavaCodeStyleManagerImpl.java:136)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.printConstraint(BeanValidationLayout.java:222)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.init(BeanValidationLayout.java:186)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.refresh(BeanValidationLayout.java:249)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.propertiespanel.actions.BeanValidationAction.fire(BeanValidationAction.kt:14)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.JmixAttributeForm.lambda$attachField$0(JmixAttributeForm.java:105)
at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:336)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange0(ExtendedPropertyChangeSupport.java:281)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:223)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:178)
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange0(ExtendedPropertyChangeSupport.java:295)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:260)
at com.jgoodies.binding.beans.Model.firePropertyChange(Model.java:117)
at com.haulmont.jmixstudio.ui.propertyform.FormValueModel.lambda$setValue$0(FormValueModel.java:40)
at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:249)
at com.haulmont.jmixstudio.ui.propertyform.FormValueModel.setValue(FormValueModel.java:40)
at com.jgoodies.binding.value.ConverterValueModel.setValue(ConverterValueModel.java:101)
at com.jgoodies.binding.adapter.ComboBoxAdapter.setSelectedItem(ComboBoxAdapter.java:258)
at java.desktop/javax.swing.JComboBox.setSelectedItem(JComboBox.java:609)
at com.haulmont.jmixstudio.ui.entity.SGroupCombo.setSelectedItem(SGroupCombo.java:140)
at java.desktop/javax.swing.JComboBox.setSelectedIndex(JComboBox.java:654)
at java.desktop/javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:946)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:300)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6631)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3400)
at java.desktop/javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:551)
at java.desktop/java.awt.Component.processEvent(Component.java:6396)
at java.desktop/java.awt.Container.processEvent(Container.java:2260)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4932)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4562)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4503)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:734)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:720)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:626)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:557)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0$0(IdeEventQueue.kt:381)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:928)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:380)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1110)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1110)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:375)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:415)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Read access is allowed from inside read-action only (see Application.runReadAction()); If you access or modify model on EDT consider wrapping your code in WriteIntentReadAction or ReadAction; see Threading Model | IntelliJ Platform Plugin SDK for details
Current thread: Thread[#61,AWT-EventQueue-0,6,main] 1046694977 (EventQueue.isDispatchThread()=true)
SystemEventQueueThread: (same)
at com.intellij.util.concurrency.ThreadingAssertions.createThreadAccessException(ThreadingAssertions.java:270)
at com.intellij.util.concurrency.ThreadingAssertions.softAssertReadAccess(ThreadingAssertions.java:159)
at com.intellij.openapi.application.impl.ApplicationImpl.assertReadAccessAllowed(ApplicationImpl.java:1219)
at com.intellij.psi.impl.source.tree.TreeElement.assertReadAccessAllowed(TreeElement.java:437)
at com.intellij.psi.impl.source.tree.CompositeElement.textToCharArray(CompositeElement.java:248)
at com.intellij.psi.impl.source.tree.CompositeElement.getText(CompositeElement.java:231)
at com.intellij.extapi.psi.ASTDelegatePsiElement.getText(ASTDelegatePsiElement.java:146)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.printConstraint(BeanValidationLayout.java:223)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.init(BeanValidationLayout.java:186)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.BeanValidationLayout.refresh(BeanValidationLayout.java:249)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.propertiespanel.actions.BeanValidationAction.fire(BeanValidationAction.kt:14)
at com.haulmont.jmixstudio.intellij.ui.entity.attr.JmixAttributeForm.lambda$attachField$0(JmixAttributeForm.java:105)
at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:336)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange0(ExtendedPropertyChangeSupport.java:281)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:223)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:178)
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange0(ExtendedPropertyChangeSupport.java:295)
at com.jgoodies.binding.beans.ExtendedPropertyChangeSupport.firePropertyChange(ExtendedPropertyChangeSupport.java:260)
at com.jgoodies.binding.beans.Model.firePropertyChange(Model.java:117)
at com.haulmont.jmixstudio.ui.propertyform.FormValueModel.lambda$setValue$0(FormValueModel.java:40)
at com.intellij.util.SlowOperations.allowSlowOperations(SlowOperations.java:249)
at com.haulmont.jmixstudio.ui.propertyform.FormValueModel.setValue(FormValueModel.java:40)
at com.jgoodies.binding.value.ConverterValueModel.setValue(ConverterValueModel.java:101)
at com.jgoodies.binding.adapter.ComboBoxAdapter.setSelectedItem(ComboBoxAdapter.java:258)
at java.desktop/javax.swing.JComboBox.setSelectedItem(JComboBox.java:609)
at com.haulmont.jmixstudio.ui.entity.SGroupCombo.setSelectedItem(SGroupCombo.java:140)
at java.desktop/javax.swing.JComboBox.setSelectedIndex(JComboBox.java:654)
at java.desktop/javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:946)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:300)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6631)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3400)
at java.desktop/javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:551)
at java.desktop/java.awt.Component.processEvent(Component.java:6396)
at java.desktop/java.awt.Container.processEvent(Container.java:2260)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4932)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4562)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4503)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:734)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:720)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:626)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:557)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0$0(IdeEventQueue.kt:381)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:928)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:380)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1110)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1110)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:375)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:415)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)


Claude reports this:
"This is a bug in the Jmix Studio IntelliJ plugin itself — specifically in BeanValidationLayout accessing PSI elements outside a read action. You can’t fix it in your code.
“Workarounds:”
“1. Edit the entity Java file directly instead of using the GUI designer. Just change the field type and its annotations manually in the .java file — this is the most reliable
workaround.
2. Update the Jmix Studio plugin — go to Settings → Plugins → Installed → Jmix and check for updates. This threading issue may have been fixed in a newer version.
3. Invalidate caches and restart — File → Invalidate Caches → Invalidate and Restart. Sometimes fixes transient plugin state issues.
4. Remove bean validation constraints before switching types — the error occurs in BeanValidationLayout when it tries to render existing validation annotations (like @NotNull, @Size,
etc.) after a type change. If you remove those annotations first, then change the type, it may not crash.”