diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java index cd601e785..688a9c1ea 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java @@ -28,6 +28,7 @@ import org.eclipse.jface.window.Window; import org.eclipse.lsp4e.LanguageServers; import org.eclipse.lsp4e.LanguageServersRegistry; import org.eclipse.lsp4e.LanguageServersRegistry.LanguageServerDefinition; +import org.eclipse.lsp4j.ExecuteCommandOptions; import org.eclipse.lsp4j.ExecuteCommandParams; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; @@ -86,7 +87,10 @@ public class RewriteRefactoringsHandler extends AbstractHandler { try { - LanguageServers.forProject(project).withPreferredServer(def).computeFirst(ls -> { + LanguageServers.forProject(project).withPreferredServer(def).withFilter(c -> { + ExecuteCommandOptions commandProvider = c.getExecuteCommandProvider(); + return commandProvider != null && commandProvider.getCommands().contains(REWRITE_REFACTORINGS_EXEC); + }).computeFirst(ls -> { PlatformUI.getWorkbench().getDisplay().asyncExec(() -> { RecipeTreeModel recipesModel = new RecipeTreeModel(ls.getWorkspaceService(), recipeFilter.toString()); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/jpa/queries/JpqlSupportState.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/jpa/queries/JpqlSupportState.java index eaf856ff3..6d876f61d 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/jpa/queries/JpqlSupportState.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/jpa/queries/JpqlSupportState.java @@ -27,7 +27,11 @@ public final class JpqlSupportState { this.server = server; this.enabled = enabled; config.addListener(v -> setEnabled(config.isJpqlEnabled())); - projectObserver.addListener(ProjectObserver.onAny(jp -> server.getAsync().execute(() -> server.getClient().refreshSemanticTokens()))); + projectObserver.addListener(ProjectObserver.onAny(jp -> { + if (enabled && server.getWorkspaceService().supportsSemanticTokensRefresh()) { + server.getAsync().execute(() -> server.getClient().refreshSemanticTokens()); + } + })); } public synchronized boolean isEnabled() {