From 12bd777a47bd86d6a36b1b50a4cbfe9e4245bdf1 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Wed, 17 Feb 2021 11:52:10 +0100 Subject: [PATCH] added shortcut to prevent expensive type hierarchy request when it is not necessary --- .../boot/java/autowired/AutowiredHoverProvider.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java index af3c103e3..1db0eaecf 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2020 Pivotal, Inc. + * Copyright (c) 2017, 2021 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -268,9 +268,15 @@ public class AutowiredHoverProvider implements HoverProvider { int idx = rawLiveBeanFqName.indexOf('<'); // Trim the generic parameters part if it's present String liveBeanTypeFQName = idx < 0 ? rawLiveBeanFqName : rawLiveBeanFqName.substring(0, idx); + if (liveBeanTypeFQName != null) { - return jp.getIndex().allSuperTypesOf(liveBeanTypeFQName, true, false).map(IType::getFullyQualifiedName) - .filter(fqn -> bindingQualifiedName.equals(fqn)).blockFirst() != null; + if (liveBeanTypeFQName.equals(bindingQualifiedName)) { + return true; + } + else { + return jp.getIndex().allSuperTypesOf(liveBeanTypeFQName, true, false).map(IType::getFullyQualifiedName) + .filter(fqn -> bindingQualifiedName.equals(fqn)).blockFirst() != null; + } } return false; }