diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/DataRepositorySymbolProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/DataRepositorySymbolProvider.java index 9d2fb5fcb..6337886f2 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/DataRepositorySymbolProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/DataRepositorySymbolProvider.java @@ -66,10 +66,12 @@ public class DataRepositorySymbolProvider extends AbstractSymbolProvider { InjectionPoint[] injectionPoints = ASTUtils.findInjectionPoints(typeDeclaration, doc); - Set supertypes = new HashSet<>(); - ASTUtils.findSupertypes(beanType, supertypes); + ITypeBinding concreteBeanTypeBindung = typeDeclaration.resolveBinding(); - String concreteRepoType = typeDeclaration.resolveBinding().getQualifiedName(); + Set supertypes = new HashSet<>(); + ASTUtils.findSupertypes(concreteBeanTypeBindung, supertypes); + + String concreteRepoType = concreteBeanTypeBindung.getQualifiedName(); Bean beanDefinition = new Bean(beanName, concreteRepoType, location, injectionPoints, (String[]) supertypes.toArray(new String[supertypes.size()])); context.getGeneratedSymbols().add(new CachedSymbol(context.getDocURI(), context.getLastModified(), enhancedSymbol, beanDefinition)); diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java index 4dc91d532..f61941fae 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java @@ -210,6 +210,9 @@ public class SpringMetamodelIndexerBeansTest { assertEquals(1, beans.length); assertEquals("customerRepository", beans[0].getName()); assertEquals("org.test.springdata.CustomerRepository", beans[0].getType()); + + assertTrue(beans[0].isTypeCompatibleWith("org.test.springdata.CustomerRepository")); + assertTrue(beans[0].isTypeCompatibleWith("org.springframework.data.repository.CrudRepository")); InjectionPoint[] injectionPoints = beans[0].getInjectionPoints(); assertEquals(0, injectionPoints.length);