diff --git a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/launcher/LanguageServerLauncherTemplate.java b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/launcher/LanguageServerLauncherTemplate.java index 81c2e9bf50b..baf732ce98a 100644 --- a/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/launcher/LanguageServerLauncherTemplate.java +++ b/wsagent/che-core-api-languageserver/src/main/java/org/eclipse/che/api/languageserver/launcher/LanguageServerLauncherTemplate.java @@ -43,10 +43,14 @@ public final LanguageServer launch(String projectPath, LanguageClient client) * @throws LanguageServerException */ private void waitCheckProcess(Process languageServerProcess) throws LanguageServerException { + long endTime = System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(20); + try { - TimeUnit.SECONDS.sleep(5); + while (!languageServerProcess.isAlive() && System.currentTimeMillis() < endTime) { + TimeUnit.MILLISECONDS.sleep(10); + } } catch (InterruptedException e) { - //ignore + Thread.currentThread().interrupt(); } if (!languageServerProcess.isAlive()) { final String error;