Skip to content

Commit 86770ce

Browse files
authored
Fix registration check npe (#216)
Fixes a possible npe when checking if the client supports dynamically registering for synchronization notifications. The property being checked is a nullable `Boolean`, and the possible null value wasn't being accounted for.
1 parent 77b522d commit 86770ce

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/main/java/software/amazon/smithy/lsp/SmithyLanguageServer.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.eclipse.lsp4j.DocumentFormattingParams;
5252
import org.eclipse.lsp4j.DocumentSymbol;
5353
import org.eclipse.lsp4j.DocumentSymbolParams;
54+
import org.eclipse.lsp4j.DynamicRegistrationCapabilities;
5455
import org.eclipse.lsp4j.FoldingRange;
5556
import org.eclipse.lsp4j.FoldingRangeRequestParams;
5657
import org.eclipse.lsp4j.Hover;
@@ -77,6 +78,7 @@
7778
import org.eclipse.lsp4j.SetTraceParams;
7879
import org.eclipse.lsp4j.SymbolInformation;
7980
import org.eclipse.lsp4j.TextDocumentChangeRegistrationOptions;
81+
import org.eclipse.lsp4j.TextDocumentClientCapabilities;
8082
import org.eclipse.lsp4j.TextDocumentContentChangeEvent;
8183
import org.eclipse.lsp4j.TextDocumentIdentifier;
8284
import org.eclipse.lsp4j.TextDocumentRegistrationOptions;
@@ -273,10 +275,11 @@ public void initialized(InitializedParams params) {
273275
}
274276

275277
private boolean isDynamicSyncRegistrationSupported() {
276-
return clientCapabilities != null
277-
&& clientCapabilities.getTextDocument() != null
278-
&& clientCapabilities.getTextDocument().getSynchronization() != null
279-
&& clientCapabilities.getTextDocument().getSynchronization().getDynamicRegistration();
278+
return Optional.ofNullable(clientCapabilities)
279+
.map(ClientCapabilities::getTextDocument)
280+
.map(TextDocumentClientCapabilities::getSynchronization)
281+
.map(DynamicRegistrationCapabilities::getDynamicRegistration)
282+
.orElse(false);
280283
}
281284

282285
private void registerDocumentSynchronization() {

0 commit comments

Comments
 (0)