fix: fall back to stdio when pipe startup fails#4447
Open
chagong wants to merge 1 commit into
Open
Conversation
bd504e2 to
1157bbf
Compare
1157bbf to
69ffc0f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #4433.
This adds a guarded startup fallback for the standard language server: when the initial
TransportKind.pipeexecutable does not connect within the 30-second pipe startup timeout, the extension recreates the client withTransportKind.stdioand starts again. This keepsvscode-javaresilient while the underlyingvscode-jsonrpcpath-budget fix in microsoft/vscode-languageserver-node#1804 is pending/released.Implementation notes:
TransportKind.pipe.Validation:
npm run compilepassed, with the existing webpack warning fromvscode-languageserver-types.npm run eslintpassed.git diff --checkpassed.npm testran the newStandard Language Client Test; all 3 new fallback tests passed. The full suite still fails on the pre-existing/unrelated command registration assertion wherejava.getFullyQualifiedNameis missing from the actual registered commands in this local run.