casteng / i-pascal

A free Object Pascal language plugin for IntelliJ IDEA
111 stars 34 forks source link

[CRITICAL] Plugin breaks indexing on 2020.1 #49

Closed MaXal closed 4 years ago

MaXal commented 4 years ago

The plugin throws the following exception on 2020.1:

2020-04-14 16:49:44,216 [   1788]   INFO - il.indexing.FileBasedIndexImpl - com.intellij.psi.impl.compiled.ClassFileStubBuilder PluginClassLoader[com.siberika.idea.pascal, 2.61] com.intellij.ide.plugins.cl.PluginClassLoader@640f75e5 [Plugin: com.siberika.idea.pascal] 
com.intellij.diagnostic.PluginException: com.intellij.psi.impl.compiled.ClassFileStubBuilder PluginClassLoader[com.siberika.idea.pascal, 2.61] com.intellij.ide.plugins.cl.PluginClassLoader@640f75e5 [Plugin: com.siberika.idea.pascal]
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateExtensionWithPicoContainerOnlyIfNeeded(ComponentManagerImpl.kt:663)
    at com.intellij.serviceContainer.BaseKeyedLazyInstance.createInstance(BaseKeyedLazyInstance.java:57)
    at com.intellij.serviceContainer.BaseKeyedLazyInstance.getInstance(BaseKeyedLazyInstance.java:49)
    at com.intellij.openapi.fileTypes.FileTypeExtension.getAllRegisteredExtensions(FileTypeExtension.java:49)
    at com.intellij.psi.stubs.CompositeBinaryBuilderMap.<init>(CompositeBinaryBuilderMap.java:31)
    at com.intellij.psi.stubs.StubUpdatingIndex$MyIndex.<init>(StubUpdatingIndex.java:307)
    at com.intellij.psi.stubs.StubUpdatingIndex.createIndexImplementation(StubUpdatingIndex.java:292)
    at com.intellij.util.indexing.FileBasedIndexImpl.createIndex(FileBasedIndexImpl.java:445)
    at com.intellij.util.indexing.FileBasedIndexImpl.initIndexStorage(FileBasedIndexImpl.java:388)
    at com.intellij.util.indexing.FileBasedIndexImpl.registerIndexer(FileBasedIndexImpl.java:356)
    at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:64)
    at com.intellij.util.indexing.IndexInfrastructure$DataInitialization.executeNestedInitializationTask(IndexInfrastructure.java:177)
    at com.intellij.util.indexing.IndexInfrastructure$DataInitialization.runParallelNestedInitializationTasks(IndexInfrastructure.java:165)
    at com.intellij.util.indexing.IndexInfrastructure$DataInitialization.call(IndexInfrastructure.java:126)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:222)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:29)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:201)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:210)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:190)
    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.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: com.intellij.psi.impl.compiled.ClassFileStubBuilder PluginClassLoader[com.siberika.idea.pascal, 2.61] com.intellij.ide.plugins.cl.PluginClassLoader@640f75e5
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:115)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateExtensionWithPicoContainerOnlyIfNeeded(ComponentManagerImpl.kt:660)
    ... 22 more

As a result the whole index is broken and IDE is unusable.

MaXal commented 4 years ago

See: https://youtrack.jetbrains.com/issue/WI-52286

casteng commented 4 years ago

I've uploaded a hotfix (v2.69) to plugin repository which disables indexing of compiled files. It doesn't broke indexing now. But more work is still needed to make it fully working for 2020 family.

casteng commented 4 years ago

Released today v2.70 fixes this