lppedd / idea-conventional-commit

Context and template-based completion for conventional/semantic commits.
https://plugins.jetbrains.com/plugin/13389-conventional-commit
MIT License
327 stars 19 forks source link

Exception when used in remote development #140

Open timoetzold opened 2 months ago

timoetzold commented 2 months ago

The following Exception occurs every time I open a project in a Windows IDEA connected to WSL.

java.lang.IllegalArgumentException: Missing extension point: com.github.lppedd.idea-conventional-commit.commitInspectionProvider in container Application (IR on EDT disabled) at com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.getExtensionPoint(ExtensionsAreaImpl.kt:273) at com.intellij.openapi.extensions.BaseExtensionPointName.getPointImpl(BaseExtensionPointName.kt:19) at com.intellij.openapi.extensions.ExtensionPointName.getExtensionList(ExtensionPointName.kt:54) at com.github.lppedd.cc.api.impl.InternalCommitInspectionProviderService.getInspectionProviders(InternalCommitInspectionProviderService.kt:17) at com.github.lppedd.cc.inspection.CommitInspectionsRegistrarStartupActivity.runActivity(CommitInspectionsRegistrarStartupActivity.kt:19) at com.intellij.ide.startup.impl.StartupManagerImpl.runOldActivity(StartupManagerImpl.kt:319) at com.intellij.ide.startup.impl.StartupManagerImpl.access$runOldActivity(StartupManagerImpl.kt:68) at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$5$1.invoke(StartupManagerImpl.kt:270) at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$5$1.invoke(StartupManagerImpl.kt:269) at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:320) at com.intellij.openapi.progress.CoroutinesKt.access$blockingContextInner(coroutines.kt:1) at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invokeSuspend(coroutines.kt:197) at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt) at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264) at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:196) at com.intellij.ide.startup.impl.StartupManagerImpl.runPostStartupActivities(StartupManagerImpl.kt:269) at com.intellij.ide.startup.impl.StartupManagerImpl.access$runPostStartupActivities(StartupManagerImpl.kt:68) at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invokeSuspend(StartupManagerImpl.kt:191) at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invoke(StartupManagerImpl.kt) at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invoke(StartupManagerImpl.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source) at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3.invokeSuspend(StartupManagerImpl.kt:190) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)

lppedd commented 2 months ago

Is that all the exception?

And, are there other exceptions preceding that one?

timoetzold commented 2 months ago

Yes, that's all. When I startup the wsl project, I get a red ! in the bottom right corner and when I click on it, i get the "IDE Internal Errors" Dialog where this Exception is shown.

The plugin seems to work after the exception though.

timoetzold commented 2 months ago

Well I just got this Exception during commit (not sure if they are related):

java.lang.NoClassDefFoundError: com/intellij/openapi/vcs/ui/CommitMessage at com.github.lppedd.cc.CCExtensionsKt.isCommitMessage(CCExtensions.kt:166) at com.github.lppedd.cc.completion.ConventionalCommitTextCompletionContributor.beforeCompletion(ConventionalCommitTextCompletionContributor.kt:76) at com.intellij.codeInsight.completion.CompletionInitializationUtil.lambda$runContributorsBeforeCompletion$1(CompletionInitializationUtil.java:89) at com.intellij.util.indexing.FileBasedIndex.lambda$ignoreDumbMode$0(FileBasedIndex.java:219) at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111) at com.intellij.util.indexing.FileBasedIndexEx.ignoreDumbMode(FileBasedIndexEx.java:637) at com.intellij.util.indexing.FileBasedIndex.ignoreDumbMode(FileBasedIndex.java:218) at com.intellij.util.indexing.DumbModeAccessType.ignoreDumbMode(DumbModeAccessType.java:43) at com.intellij.codeInsight.completion.CompletionInitializationUtil.runContributorsBeforeCompletion(CompletionInitializationUtil.java:86) at com.intellij.codeInsight.completion.CompletionInitializationUtil.lambda$createCompletionInitializationContext$0(CompletionInitializationUtil.java:60) at com.intellij.openapi.application.impl.RwLockHolder.runWriteAction(RwLockHolder.kt:364) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:893) at com.intellij.openapi.application.WriteAction.compute(WriteAction.java:95) at com.intellij.codeInsight.completion.CompletionInitializationUtil.createCompletionInitializationContext(CompletionInitializationUtil.java:51) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$invokeCompletion$1(CodeCompletionHandlerBase.java:192) at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:100) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:217) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:202) at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:100) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.withTimeout(ProgressIndicatorUtils.java:317) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.withTimeout(CodeCompletionHandlerBase.java:828) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$invokeCompletion$2(CodeCompletionHandlerBase.java:191) at com.intellij.openapi.command.impl.CoreCommandProcessor.runUndoTransparentAction(CoreCommandProcessor.java:382) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.invokeCompletion(CodeCompletionHandlerBase.java:205) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$invokeCompletionWithTracing$3(CodeCompletionHandlerBase.java:230) at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:32) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.invokeCompletionWithTracing(CodeCompletionHandlerBase.java:225) at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.invokeCompletion(CodeCompletionHandlerBase.java:147) at com.intellij.codeInsight.completion.CompletionPhase$CommittingDocuments.lambda$scheduleAsyncCompletion$1(CompletionPhase.java:167) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$safeTransferToEdt$7(NonBlockingReadActionImpl.java:728) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209) at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22) at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191) at com.intellij.openapi.application.impl.RwLockHolder.runIntendedWriteActionOnCurrentThread(RwLockHolder.kt:204) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:830) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:419) at com.intellij.openapi.application.impl.RwLockHolder.runWithEnabledImplicitRead(RwLockHolder.kt:138) at com.intellij.openapi.application.impl.RwLockHolder.runWithImplicitRead(RwLockHolder.kt:129) at com.intellij.openapi.application.impl.ApplicationImpl.runWithImplicitRead(ApplicationImpl.java:1152) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:81) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:123) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:43) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:792) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:698) at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$12(IdeEventQueue.kt:593) at com.intellij.openapi.application.impl.RwLockHolder.runWithoutImplicitRead(RwLockHolder.kt:105) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:593) at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:77) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:362) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:361) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:843) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:361) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:356) at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1021) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106) at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1021) at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:356) at com.intellij.openapi.application.impl.RwLockHolder.runIntendedWriteActionOnCurrentThread(RwLockHolder.kt:209) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:830) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:398) 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) Caused by: java.lang.ClassNotFoundException: com.intellij.openapi.vcs.ui.CommitMessage PluginClassLoader(plugin=PluginDescriptor(name=Conventional Commit, id=com.github.lppedd.idea-conventional-commit, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\JetBrainsClient241.14494.240\plugins\idea-conventional-commit, version=0.23.0, package=null, isBundled=false), packagePrefix=null, state=active) at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:156) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ... 77 more

lppedd commented 2 months ago

It looks like the remote environment has more limitations, that is, some parts of the platform are not loaded.

I'd have to experiment myself. Or check with JetBrains.

lppedd commented 2 months ago

Could you post the exact IDEA version you're running on?

timoetzold commented 2 months ago

The version is: IntelliJ IDEA 2024.1 Build #JBC-241.14494.240, built on March 28, 2024

Thanks so far. If I remember correctly the plugin wasn't working at all in 2023.x and even the commit panel wasn't accessible. Now just the errors are popping up.

lppedd commented 2 months ago

Yup I had already solved some issues related to Gateway / remote development.

Maybe that's yet again something that has changed and that I need to align on my side (e.g., loading parts of the plugin only if the platform dependency is present).