redhat-developer / redhat-developer/lsp4ij
Encountered a ProcessCanceledException while working on quick fixes.
@angelozerr is already working on this.
Since Nov 20, 2024.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.