diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/TypeImpl.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/TypeImpl.java index 33c194a31..aa4bf012f 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/TypeImpl.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jandex/TypeImpl.java @@ -19,6 +19,8 @@ import java.util.stream.Stream; import org.jboss.jandex.AnnotationInstance; import org.jboss.jandex.ClassInfo; import org.jboss.jandex.DotName; +import org.jboss.jandex.FieldInfo; +import org.jboss.jandex.MethodInfo; import org.jboss.jandex.Type; import org.springframework.ide.vscode.commons.java.Flags; import org.springframework.ide.vscode.commons.java.IAnnotation; @@ -103,7 +105,8 @@ class TypeImpl implements IType { @Override public IField getField(String name) { - return Wrappers.wrap(this, info.field(name), javadocProvider); + FieldInfo fieldInfo = info.field(name); + return fieldInfo == null ? null : Wrappers.wrap(this, fieldInfo, javadocProvider); } @Override @@ -116,7 +119,8 @@ class TypeImpl implements IType { @Override public IMethod getMethod(String name, Stream parameters) { List typeParameters = parameters.map(Wrappers::from).collect(Collectors.toList()); - return Wrappers.wrap(this, info.method(name, typeParameters.toArray(new Type[typeParameters.size()])), javadocProvider); + MethodInfo methodInfo = info.method(name, typeParameters.toArray(new Type[typeParameters.size()])); + return methodInfo == null ? null : Wrappers.wrap(this, methodInfo, javadocProvider); } @Override diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/types/TypeUtil.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/types/TypeUtil.java index 168c8f159..658ac6049 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/types/TypeUtil.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/types/TypeUtil.java @@ -839,9 +839,16 @@ public class TypeUtil { IType type = findType(beanType); IMethod m = type.getMethod(getterName, Stream.empty()); - if (m.exists()) { + if (m != null && m.exists()) { return m; } + + getterName = "is" + StringUtil.hyphensToCamelCase(propName, true); + m = type.getMethod(getterName, Stream.empty()); + if (m != null && m.exists()) { + return m; + } + return null; }