From 6e243e72aecc6867450f6d631720b80b50d361a5 Mon Sep 17 00:00:00 2001 From: aboyko Date: Wed, 11 Jan 2023 17:50:13 -0500 Subject: [PATCH] Account for exception during Java source parsing --- .../boot/java/rewrite/RewriteReconciler.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java index 17b2eba27..9f2d36cd1 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteReconciler.java @@ -260,12 +260,20 @@ public class RewriteReconciler implements JavaReconciler { return new ByteArrayInputStream(d.get().getBytes()); })).collect(Collectors.toList())); - for (int j = 0; j < batchList.size(); j++) { + /* + * If exception occurs during parsing inputs the list of inputs would become shorter than the list of corresponding documents + */ + + for (int j = 0, k = 0; j < batchList.size(); j++) { final IDocument doc = docs.get(j); List problems = new ArrayList<>(); - collectProblems(descriptors, doc, cus.get(j), problems::add); - if (!problems.isEmpty()) { - allProblems.put(doc, problems); + CompilationUnit cu = cus.get(k); + if (cu.getSourcePath().equals(Paths.get(URI.create(doc.getUri())))) { + k++; + collectProblems(descriptors, doc, cu, problems::add); + if (!problems.isEmpty()) { + allProblems.put(doc, problems); + } } }