forked from qt-creator/qt-creator
LanguageClient: avoid assert on init response
Fixes: QTCREATORBUG-29748 Change-Id: I6b86906f302be6e0eb3a89eaf851f7231bf78586 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -537,7 +537,7 @@ void Client::initialize()
|
|||||||
else
|
else
|
||||||
params.setWorkSpaceFolders(workspaces);
|
params.setWorkSpaceFolders(workspaces);
|
||||||
InitializeRequest initRequest(params);
|
InitializeRequest initRequest(params);
|
||||||
initRequest.setResponseCallback([this](const InitializeRequest::Response &initResponse){
|
initRequest.setResponseCallback([this](const InitializeRequest::Response &initResponse) {
|
||||||
d->initializeCallback(initResponse);
|
d->initializeCallback(initResponse);
|
||||||
});
|
});
|
||||||
if (std::optional<ResponseHandler> responseHandler = initRequest.responseHandler())
|
if (std::optional<ResponseHandler> responseHandler = initRequest.responseHandler())
|
||||||
@@ -2105,7 +2105,11 @@ void Client::setDocumentChangeUpdateThreshold(int msecs)
|
|||||||
|
|
||||||
void ClientPrivate::initializeCallback(const InitializeRequest::Response &initResponse)
|
void ClientPrivate::initializeCallback(const InitializeRequest::Response &initResponse)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_state == Client::InitializeRequested, return);
|
if (m_state != Client::InitializeRequested) {
|
||||||
|
qCWarning(LOGLSPCLIENT) << "Dropping initialize response in unexpected state " << m_state;
|
||||||
|
qCDebug(LOGLSPCLIENT) << initResponse.toJsonObject();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (std::optional<ResponseError<InitializeError>> error = initResponse.error()) {
|
if (std::optional<ResponseError<InitializeError>> error = initResponse.error()) {
|
||||||
if (std::optional<InitializeError> data = error->data()) {
|
if (std::optional<InitializeError> data = error->data()) {
|
||||||
if (data->retry()) {
|
if (data->retry()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user