Skip to content

Commit 37deb03

Browse files
authored
Avoid NPE when getting localized name (#46)
The package reference is not guaranteed to be present.
1 parent 7bb4474 commit 37deb03

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/main/java/lsifjava/DocumentIndexer.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import spoon.reflect.declaration.*;
1010
import spoon.reflect.reference.CtCatchVariableReference;
1111
import spoon.reflect.reference.CtExecutableReference;
12+
import spoon.reflect.reference.CtPackageReference;
1213
import spoon.reflect.reference.CtTypeReference;
1314
import spoon.reflect.visitor.CtScanner;
1415

@@ -511,13 +512,15 @@ private void appendTypeParam(StringBuilder b, CtTypeReference<?> next) {
511512
}
512513

513514
private String getLocalizedName(CtTypeReference<?> type) {
514-
if(type.getPackage().getQualifiedName().equals("java.lang")) {
515-
return type.getSimpleName();
516-
} else if(type.getPackage().getQualifiedName().startsWith(this.packageName)) {
517-
return type.getSimpleName();
518-
} else {
519-
return type.getQualifiedName();
515+
final CtPackageReference packageRef = type.getPackage();
516+
if (packageRef != null) {
517+
final String qualifiedName = packageRef.getQualifiedName();
518+
if (qualifiedName.equals("java.lang") || qualifiedName.startsWith(this.packageName)) {
519+
return type.getSimpleName();
520+
}
520521
}
522+
523+
return type.getQualifiedName();
521524
}
522525

523526
private String humanRange(Range r) {

0 commit comments

Comments
 (0)