From 328f8f6436e464519aedcecde7f19cd01ed04170 Mon Sep 17 00:00:00 2001 From: Tom Wieczorek Date: Thu, 1 Oct 2020 22:27:44 +0200 Subject: [PATCH] Avoid NPE when getting localized name The package reference is not guaranteed to be present. --- src/main/java/lsifjava/DocumentIndexer.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/lsifjava/DocumentIndexer.java b/src/main/java/lsifjava/DocumentIndexer.java index 33cf6fb1..5b7dca6d 100644 --- a/src/main/java/lsifjava/DocumentIndexer.java +++ b/src/main/java/lsifjava/DocumentIndexer.java @@ -9,6 +9,7 @@ import spoon.reflect.declaration.*; import spoon.reflect.reference.CtCatchVariableReference; import spoon.reflect.reference.CtExecutableReference; +import spoon.reflect.reference.CtPackageReference; import spoon.reflect.reference.CtTypeReference; import spoon.reflect.visitor.CtScanner; @@ -511,13 +512,15 @@ private void appendTypeParam(StringBuilder b, CtTypeReference next) { } private String getLocalizedName(CtTypeReference type) { - if(type.getPackage().getQualifiedName().equals("java.lang")) { - return type.getSimpleName(); - } else if(type.getPackage().getQualifiedName().startsWith(this.packageName)) { - return type.getSimpleName(); - } else { - return type.getQualifiedName(); + final CtPackageReference packageRef = type.getPackage(); + if (packageRef != null) { + final String qualifiedName = packageRef.getQualifiedName(); + if (qualifiedName.equals("java.lang") || qualifiedName.startsWith(this.packageName)) { + return type.getSimpleName(); + } } + + return type.getQualifiedName(); } private String humanRange(Range r) {