Добрый день,
После конвертации части сущностей в kotlin перестала работать генерация скриптов БД в CUBA Studio. После запуска генерации (действие “Generate Database Scripts…”) процесс зависает, отображается диалог прогресса “Generating DB Scripts” и в логи IDEA в большом количестве пишутся ошибки “Read access is allowed from event dispatch thread or inside read-action only”.
Версия CUBA Studio:14.2-202
Stacktrace из логов IDEA:
2020-09-30 12:15:43,237 [ 200198] ERROR - plication.impl.ApplicationImpl - IntelliJ IDEA 2020.2 Build #IU-202.6397.94
2020-09-30 12:15:43,237 [ 200198] ERROR - plication.impl.ApplicationImpl - JDK: 11.0.7; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2020-09-30 12:15:43,237 [ 200198] ERROR - plication.impl.ApplicationImpl - OS: Windows 10
2020-09-30 12:15:43,237 [ 200198] ERROR - plication.impl.ApplicationImpl - Last Action: cuba.generateDbScriptsAction
2020-09-30 12:15:43,238 [ 200199] ERROR - plication.impl.ApplicationImpl - Read access is allowed from event dispatch thread or inside read-action only (see com.intellij.openapi.application.Application.runReadAction())
Details: Current thread: Thread[ApplicationImpl pooled thread 6,4,Idea Thread Group] 1755997921
; dispatch thread: false; isDispatchThread(): false
SystemEventQueueThread: Thread[AWT-EventQueue-0,6,Idea Thread Group] 162931715
java.lang.Throwable: Read access is allowed from event dispatch thread or inside read-action only (see com.intellij.openapi.application.Application.runReadAction())
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:161)
at com.intellij.openapi.application.impl.ApplicationImpl.assertReadAccessAllowed(ApplicationImpl.java:1013)
at com.intellij.psi.impl.PsiDocumentManagerBase.getUncommittedDocuments(PsiDocumentManagerBase.java:818)
at com.intellij.util.indexing.FileBasedIndexImpl.indexUnsavedDocuments(FileBasedIndexImpl.java:909)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:702)
at com.intellij.psi.stubs.StubIndexImpl.getContainingIds(StubIndexImpl.java:448)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:294)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:108)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:96)
at org.jetbrains.plugins.groovy.lang.stubs.GroovyShortNamesCache.getScriptClassesByFQName(GroovyShortNamesCache.java:54)
at org.jetbrains.plugins.groovy.lang.stubs.GroovyShortNamesCache.getClassesByFQName(GroovyShortNamesCache.java:83)
at org.jetbrains.plugins.groovy.lang.psi.impl.javaView.GroovyClassFinder.findClass(GroovyClassFinder.java:48)
at org.jetbrains.plugins.groovy.lang.psi.impl.javaView.GroovyLightInnerClassFinder.findClass(GroovyLightInnerClassFinder.kt:19)
at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:96)
at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:73)
at org.jetbrains.kotlin.idea.decompiler.navigation.SourceNavigationHelper.getOriginalClass(SourceNavigationHelper.kt:241)
at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport.getLightClass(IDEKotlinAsJavaSupport.kt:147)
at com.haulmont.studio.backend.model.KtEntityPsiClassResolver.resolveClass(EntityPsiClassResolver.kt:20)
at com.haulmont.studio.backend.model.EntityPsi.getPsiClass(EntityPsi.java:475)
at com.haulmont.studio.backend.model.EntityPsi.getParent(EntityPsi.java:317)
at com.haulmont.studio.backend.model.EntityPsi.getParent(EntityPsi.java:41)
at com.haulmont.studio.backend.ed.EntityDesignHelper.getInheritanceType(EntityDesignHelper.java:555)
at com.haulmont.studio.backend.ed.EntityDesignHelper.getInheritanceType(EntityDesignHelper.java:557)
at com.haulmont.studio.backend.ed.ddl.TableUpdatesGenerator.getChildBaseEntitiesHierarchyWithSingleTableStrategy(TableUpdatesGenerator.java:1362)
at com.haulmont.studio.backend.ed.ddl.TableUpdatesGenerator.generateRootBaseEntityUpdateOnlyDropColumn(TableUpdatesGenerator.java:1380)
at com.haulmont.studio.backend.ed.ddl.TableUpdatesGenerator.postProcessBaseEntityUpdates(TableUpdatesGenerator.java:382)
at com.haulmont.studio.backend.ed.ddl.TableUpdatesGenerator.processBaseEntityUpdates(TableUpdatesGenerator.java:351)
at com.haulmont.studio.backend.ed.ddl.TableUpdatesGenerator.processing(TableUpdatesGenerator.java:115)
at com.haulmont.studio.backend.ed.ddl.AbstractDdlGenerator.generateTableUpdates(AbstractDdlGenerator.java:503)
at com.haulmont.studio.backend.ed.ddl.AbstractDdlGenerator.generateUpdates(AbstractDdlGenerator.java:490)
at com.intellij.openapi.progress.impl.CoreProgressManager$1.run(CoreProgressManager.java:245)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:935)
at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:490)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$new$0(ProgressRunner.java:79)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:235)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:170)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:235)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
at java.base/java.lang.Thread.run(Thread.java:834)