redhat-developer / redhat-developer/lsp4ij

Encountered a ProcessCanceledException while working on quick fixes.

Open
#555 0 comments 0 reactions 1 assignee View on GitHub

@angelozerr is already working on this.

Since Nov 20, 2024.

bug
Dominant language
Java
Stars
344
Forks
113
Avg merge
5h 22m
Merged PRs (30d)
15

Description

Discussed in https://github.com/redhat-developer/lsp4ij/discussions/418

Originally posted by anusreelakshmi934 July 12, 2024
When I opened a file containing a diagnostic, after i applied the associated quickfix and then reverted back the applied quickfix, i am coming across a ProcessCanceledException. Not able to reproduce it consistently.
I can see from the logs - 'Computing MicroProfile Java diagnostics' with attempt 1/5 and 'Computing Jakarta Java diagnostics' with attempt 1/5. , but not able to see further attempts.

Is this an expected behaviour?

Attaching Logs

2024-07-11 21:33:52,061 [ 184753] WARN - com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture - Restart non blocking read action for 'Computing MicroProfile Java diagnostics' with attempt 1/5.
com.intellij.openapi.progress.ProcessCanceledException

at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.throwIfCanceled(AbstractProgressIndicatorBase.java:172)
at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.checkCanceled(AbstractProgressIndicatorBase.java:162)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceledRaw(ProgressWrapper.java:70)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceled(ProgressWrapper.java:77)
at com.intellij.openapi.progress.impl.CoreProgressManager.doCheckCanceled(CoreProgressManager.java:166)
at com.intellij.openapi.progress.ProgressManager.checkCanceled(ProgressManager.java:333)
at com.intellij.openapi.progress.ProgressIndicatorProvider.checkCanceled(ProgressIndicatorProvider.java:38)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getStub(StubBasedPsiElementBase.java:330)
at com.intellij.psi.impl.source.tree.java.PsiAnnotationImpl.getNameReferenceElement(PsiAnnotationImpl.java:37)
at com.intellij.psi.impl.source.tree.java.PsiAnnotationImpl.getQualifiedName(PsiAnnotationImpl.java:72)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.isMatchAnnotation(AnnotationUtils.java:165)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.getFirstAnnotation(AnnotationUtils.java:94)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.getFirstAnnotation(AnnotationUtils.java:83)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.hasAnyAnnotation(AnnotationUtils.java:56)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.health.java.MicroProfileHealthDiagnosticsParticipant.validateClassType(MicroProfileHealthDiagnosticsParticipant.java:103)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.health.java.MicroProfileHealthDiagnosticsParticipant.collectDiagnostics(MicroProfileHealthDiagnosticsParticipant.java:90)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.health.java.MicroProfileHealthDiagnosticsParticipant.collectDiagnostics(MicroProfileHealthDiagnosticsParticipant.java:81)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.core.java.corrections.JavaDiagnosticsDefinition.collectDiagnostics(JavaDiagnosticsDefinition.java:77)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$5(DiagnosticsHandler.java:86)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$7(DiagnosticsHandler.java:85)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.kt:124)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:72)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:58)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.PropertiesManagerForJava.diagnostics(PropertiesManagerForJava.java:227)
at io.openliberty.tools.intellij.lsp4mp.lsp.MicroProfileLanguageClient.lambda$getJavaDiagnostics$7(MicroProfileLanguageClient.java:198)
at com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture.lambda$nonBlockingReadActionPromise$2(PromiseToCompletableFuture.java:144)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:851)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:883)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:604)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.RwLockHolder.tryRunReadAction(RwLockHolder.kt:310)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:958)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:155)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:138)
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.runWithWriteActionPriority(ProgressIndicatorUtils.java:135)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:466)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:481)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:840)
2024-07-11 21:33:52,061 [ 184753] WARN - com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture - Restart non blocking read action for 'Computing Jakarta Java diagnostics' with attempt 1/5.
com.intellij.openapi.progress.ProcessCanceledException

at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.throwIfCanceled(AbstractProgressIndicatorBase.java:172)
at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.checkCanceled(AbstractProgressIndicatorBase.java:162)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceledRaw(ProgressWrapper.java:70)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceled(ProgressWrapper.java:77)
at com.intellij.openapi.progress.impl.CoreProgressManager.doCheckCanceled(CoreProgressManager.java:166)
at com.intellij.openapi.progress.ProgressManager.checkCanceled(ProgressManager.java:333)
at com.intellij.openapi.progress.ProgressIndicatorProvider.checkCanceled(ProgressIndicatorProvider.java:38)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getGreenStub(StubBasedPsiElementBase.java:341)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getStubOrPsiChild(StubBasedPsiElementBase.java:350)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getRequiredStubOrPsiChild(StubBasedPsiElementBase.java:372)
at com.intellij.psi.impl.source.PsiMethodImpl.getTypeParameterList(PsiMethodImpl.java:159)
at com.intellij.psi.impl.PsiImplUtil.hasTypeParameters(PsiImplUtil.java:233)
at com.intellij.psi.impl.source.PsiMethodImpl.hasTypeParameters(PsiMethodImpl.java:164)
at io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.di.DependencyInjectionDiagnosticsCollector.collectDiagnostics(DependencyInjectionDiagnosticsCollector.java:79)
at io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.AbstractDiagnosticsCollector.collectDiagnostics(AbstractDiagnosticsCollector.java:104)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.core.java.corrections.JavaDiagnosticsDefinition.collectDiagnostics(JavaDiagnosticsDefinition.java:77)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$5(DiagnosticsHandler.java:86)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$7(DiagnosticsHandler.java:85)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.kt:124)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:72)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:58)
at io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.PropertiesManagerForJakarta.diagnostics(PropertiesManagerForJakarta.java:63)
at io.openliberty.tools.intellij.lsp4jakarta.lsp.JakartaLanguageClient.lambda$getJavaDiagnostics$0(JakartaLanguageClient.java:59)
at com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture.lambda$nonBlockingReadActionPromise$2(PromiseToCompletableFuture.java:144)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:851)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:883)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:604)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.RwLockHolder.tryRunReadAction(RwLockHolder.kt:310)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:958)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:155)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:138)
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.runWithWriteActionPriority(ProgressIndicatorUtils.java:135)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:466)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:481)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:840)

This entire stack trace resulted from a single instance of encountering this issue. Here's what I did: I applied the quickfix and then reverted it. Both 'Computing Jakarta Java diagnostics' and 'Computing MicroProfile Java diagnostics' are involved. Sometimes the issue can be reproduced immediately, while other times it requires continuously applying and reverting quickfixes.

I sometimes encounter 'Computing Java projects labels' , 'Computing Java code actions' and 'Computing Java codelens' messages, along with 'Computing Jakarta Java diagnostics' and 'Computing MicroProfile Java diagnostics'. After repeatedly applying and reverting quick fixes for a while, I kept using (cmd+z) and (cmd+shift+z). By doing this, I was able to trigger the exceptions.

</div>

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.