CUBA Plugin exception on forms with TwinColumn component

I get a CUBA plugin exception when open a form with TwinColumn component in IntellijIDEA designer:

java.lang.AssertionError: PsiClass:TwinColumn
at com.intellij.psi.impl.PsiElementFactoryImpl.createType(PsiElementFactoryImpl.java:316)
at com.haulmont.studio.intellij.generator.ui.ComponentTypeResolver.buildComponentType(SourceFile:164)
at com.haulmont.studio.intellij.generator.ui.ComponentTypeResolver.getComponentType(SourceFile:148)
at com.haulmont.studio.intellij.generator.ui.ProcessComponentsProcessor.execute(SourceFile:55)
at com.intellij.xml.util.XmlPsiUtil$XmlElementProcessor.processXmlElements(XmlPsiUtil.java:86)
at com.intellij.xml.util.XmlPsiUtil$XmlElementProcessor.processElement(XmlPsiUtil.java:122)
at com.intellij.xml.util.XmlPsiUtil$XmlElementProcessor.processXmlElements(XmlPsiUtil.java:114)
at com.intellij.xml.util.XmlPsiUtil$XmlElementProcessor.processElement(XmlPsiUtil.java:122)
at com.intellij.xml.util.XmlPsiUtil$XmlElementProcessor.access$100(XmlPsiUtil.java:75)
at com.intellij.xml.util.XmlPsiUtil.processXmlElementChildren(XmlPsiUtil.java:69)
at com.intellij.xml.util.XmlUtil.processXmlElementChildren(XmlUtil.java:285)
at com.haulmont.studio.intellij.generator.ui.GenerateInjectsScanner.gatherComponents(SourceFile:327)
at com.haulmont.studio.intellij.inspection.InjectedComponentInspectionBase.inspectScreenController(SourceFile:48)
at com.haulmont.studio.intellij.inspection.InjectedComponentInspectionBase.checkFile(SourceFile:34)
at com.intellij.codeInspection.LocalInspectionTool$1.visitFile(LocalInspectionTool.java:142)
at com.intellij.psi.impl.source.PsiJavaFileBaseImpl.accept(PsiJavaFileBaseImpl.java:520)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:75)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$null$8(LocalInspectionsPass.java:319)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:169)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:127)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:116)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:111)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$9(LocalInspectionsPass.java:318)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:133)
at com.intellij.concurrency.ApplierCompleter.tryToExecAllList(ApplierCompleter.java:231)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:159)
at com.intellij.concurrency.ApplierCompleter.tryToExecAllList(ApplierCompleter.java:231)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:159)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:586)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:86)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:116)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:164)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:218)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.pollAndExecCC(ForkJoinPool.java:1190)
at java.util.concurrent.ForkJoinPool.helpComplete(ForkJoinPool.java:1879)
at java.util.concurrent.ForkJoinPool.awaitJoin(ForkJoinPool.java:2045)
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1036)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:71)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:56)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.visitRestElementsAndCleanup(LocalInspectionsPass.java:331)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.inspect(LocalInspectionsPass.java:201)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:117)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:84)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:69)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$null$1(PassExecutorService.java:430)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1166)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:423)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:586)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:86)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:422)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:398)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:164)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:218)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:396)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:174)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

IntellijIDEA 2019.1.2
CUBA Plugin v11.0.NIGHTLY114-183

Thanks for the bug report. The issue https://youtrack.cuba-platform.com/issue/STUDIO-6398 will be fixed in a next release.

Does this problem persist after re-opening the controller/descriptor?

Yes, the problem persists after reopening both. Moreover, the problem sometimes causes malfunctions of IDEA syntax analyser that starts for example to consider non-empty “if” constructions as empty.

Hello! Could you attach your screen descriptor code?

I’ve just opened the form first and got no error, but the error had been occured after opening the controller code.

visitassignment.zip (2.4 KB)