diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java index 43290632c..34c601cae 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java @@ -754,7 +754,8 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC public void accept(ReconcileProblem problem) { try { DiagnosticSeverity severity = severityProvider.getDiagnosticSeverity(problem); - if (severity!=null) { + + if (severity != null) { Diagnostic d = new Diagnostic(); d.setCode(problem.getCode()); d.setMessage(problem.getMessage()); @@ -763,6 +764,7 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC d.setSeverity(severity); d.setSource(getServer().EXTENSION_ID); List> fixes = problem.getQuickfixes(); + // Copy original diagnsotic without the data field to avoid stackoverflow is hashCode() method call Diagnostic refDiagnostic = new Diagnostic(d.getRange(), d.getMessage(), d.getSeverity(), d.getSource()); if (CollectionUtil.hasElements(fixes)) { @@ -782,7 +784,7 @@ public final class SimpleLanguageServer implements Sts4LanguageServer, LanguageC diagnostics.add(d); } } catch (BadLocationException e) { - log.warn("Invalid reconcile problem ignored", e); + log.warn("Invalid reconcile problem ignored: " + doc.getUri() + " - problem position: " + problem.getOffset() + "/" + problem.getLength(), e); } } }; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java index b03f89881..2e5ef5fa1 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java @@ -38,7 +38,7 @@ public class ProjectVersionDiagnosticProvider { URI buildFileUri = javaProject.getProjectBuild() == null ? null : javaProject.getProjectBuild().getBuildFile(); if (buildFileUri == null) { - throw new Exception("Unable to find build file in project while computing version validation for: "); + throw new Exception("Unable to find build file in project while computing version validation for: " + javaProject.getElementName()); } Version javaProjectVersion = SpringProjectUtil.getSpringBootVersion(javaProject);