Skip to content

NPE on SemanticTokens  #861

@laeubi

Description

@laeubi
Exception in thread "org.eclipse.jface.text.reconciler.Reconciler" java.lang.NullPointerException: Cannot invoke "java.util.List.isEmpty()" because "dataStream" is null
	at org.eclipse.lsp4e.operations.semanticTokens.SemanticHighlightReconcilerStrategy.saveStyle(SemanticHighlightReconcilerStrategy.java:190)
	at org.eclipse.lsp4e.operations.semanticTokens.VersionedSemanticTokens.apply(VersionedSemanticTokens.java:40)
	at org.eclipse.lsp4e.operations.semanticTokens.SemanticHighlightReconcilerStrategy.lambda$5(SemanticHighlightReconcilerStrategy.java:271)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at org.eclipse.lsp4e.operations.semanticTokens.SemanticHighlightReconcilerStrategy.fullReconcile(SemanticHighlightReconcilerStrategy.java:270)
	at org.eclipse.lsp4e.operations.semanticTokens.SemanticHighlightReconcilerStrategy.initialReconcile(SemanticHighlightReconcilerStrategy.java:288)
	at org.eclipse.ui.internal.genericeditor.CompositeReconcilerStrategy.initialReconcile(CompositeReconcilerStrategy.java:48)
	at org.eclipse.jface.text.reconciler.Reconciler.initialProcess(Reconciler.java:223)
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:177)

this seem to happen when returning an empty SemanticTokens like this from an lsp4j server:

@Override
public CompletableFuture<SemanticTokens> semanticTokensFull(SemanticTokensParams params) {
	return withDocument(params.getTextDocument(), document -> {
		SemanticTokens tokens = new SemanticTokens();
		...
		return tokens;
	});
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions