事象
Eclipseがやたら重たく、フリーズが連発。${workspace}/.metadata/.log
ファイルを確認したところ、次のログがくりかえし記録されていました。
!ENTRY org.eclipse.lsp4e 4 0 2024-04-04 17:49:18.314
!MESSAGE TimeoutException
!STACK 0
java.util.concurrent.TimeoutException
at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1960)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095)
at org.eclipse.lsp4e.LanguageServerWrapper.supportsWorkspaceFolderCapability(LanguageServerWrapper.java:562)
at org.eclipse.lsp4e.LanguageServerWrapper.canOperate(LanguageServerWrapper.java:892)
at org.eclipse.lsp4e.LanguageServiceAccessor.lambda$6(LanguageServiceAccessor.java:361)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.eclipse.lsp4e.LanguageServiceAccessor.getLSWrappers(LanguageServiceAccessor.java:362)
at org.eclipse.lsp4e.LanguageServiceAccessor.getLanguageServers(LanguageServiceAccessor.java:601)
at org.eclipse.lsp4e.ConnectDocumentToLanguageServerSetupParticipant$2.run(ConnectDocumentToLanguageServerSetupParticipant.java:75)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
原因と対策
スタックトレース内のorg.eclipse.lsp4e
からも推察できる通り、言語サーバ(Language Server Protocol; LSP)が悪さしているとのこと。自分の環境ではLSPが不要だったので、LSP機能をオフにしたところ、事象は解消しました。
① ウィンドウ(W) > 設定(P)を選択する
② 「言語サーバ」を選択し、「使用可能」のチェックをすべて外したあと、適用して閉じる」ボタンを押下する。