Tiny Fixes: avoid NPEs
Change-Id: I923d81be7b63e0be03806fcca7a82cb9b466135b
Signed-off-by: Brian de Alwis <bsd@acm.org>
diff --git a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/codelens/CodeLensProvider.java b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/codelens/CodeLensProvider.java
index 86c1da2..bac8833 100644
--- a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/codelens/CodeLensProvider.java
+++ b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/codelens/CodeLensProvider.java
@@ -41,9 +41,14 @@
.getLanguageServers(document, capabilities -> capabilities.getCodeLensProvider() != null)
.thenComposeAsync(languageServers -> CompletableFuture.allOf(languageServers.stream()
.map(languageServer -> languageServer.getTextDocumentService().codeLens(param)
- .thenAcceptAsync(codeLenses ->
- codeLenses.stream().filter(Objects::nonNull).map(codeLens ->
- toCodeMining(document, languageServer, codeLens)).filter(Objects::nonNull).forEach(codeLensResults::add)))
+ .thenAcceptAsync(codeLenses -> {
+ // textDocument/codeLens may return null
+ if (codeLenses != null) {
+ codeLenses.stream().filter(Objects::nonNull)
+ .map(codeLens -> toCodeMining(document, languageServer, codeLens))
+ .filter(Objects::nonNull).forEach(codeLensResults::add);
+ }
+ }))
.toArray(CompletableFuture[]::new)))
.thenApplyAsync(theVoid -> codeLensResults);
}
diff --git a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/symbols/LSPSymbolInFileDialog.java b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/symbols/LSPSymbolInFileDialog.java
index 631fd4c..d7ea3eb 100644
--- a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/symbols/LSPSymbolInFileDialog.java
+++ b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/symbols/LSPSymbolInFileDialog.java
@@ -71,7 +71,8 @@
return hasChildren(either.getRight());
}
} else if (element instanceof DocumentSymbol) {
- return !((DocumentSymbol) element).getChildren().isEmpty();
+ return ((DocumentSymbol) element).getChildren() != null
+ && !((DocumentSymbol) element).getChildren().isEmpty();
}
return false;
}