Skip to content

Commit bc1a26a

Browse files
snjezargrunber
authored andcommitted
Avoid retrieving AST root during diagnostic publishing
Remove CoreASTProvider.getAST(...) from BaseDocumentLifeCycleHandler.publishDiagnostics(IProgressMonitor) - #2535 Signed-off-by: Snjezana Peco <[email protected]>
1 parent c73f7a2 commit bc1a26a

File tree

2 files changed

+15
-22
lines changed

2 files changed

+15
-22
lines changed

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,7 @@ public IStatus publishDiagnostics(IProgressMonitor monitor) throws JavaModelExce
260260
if (monitor.isCanceled()) {
261261
return Status.CANCEL_STATUS;
262262
}
263-
CompilationUnit astRoot = this.sharedASTProvider.getAST(rootToValidate, CoreASTProvider.WAIT_YES, monitor);
264-
if (monitor.isCanceled()) {
265-
return Status.CANCEL_STATUS;
266-
}
267-
if (astRoot != null) {
268-
// report errors, even if there are no problems in the file: The client need to know that they got fixed.
269-
ICompilationUnit unit = (ICompilationUnit) astRoot.getTypeRoot();
270-
publishDiagnostics(unit, progress.newChild(1));
271-
}
263+
publishDiagnostics(rootToValidate, progress.newChild(1));
272264
}
273265
JavaLanguageServerPlugin.logInfo("Validated " + toValidate.size() + ". Took " + (System.currentTimeMillis() - start) + " ms");
274266
return Status.OK_STATUS;

org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/handlers/DocumentLifeCycleHandlerTest.java

+14-13
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ public void testBasicBufferLifeCycle() throws Exception {
230230
assertEquals(true, cu1.isWorkingCopy());
231231
assertEquals(false, cu1.hasUnsavedChanges());
232232
assertNewProblemReported(new ExpectedProblemReport(cu1, 0));
233-
assertEquals(1, getCacheSize());
233+
// https://github.com/eclipse/eclipse.jdt.ls/pull/2535
234+
assertEquals(0, getCacheSize());
234235
assertNewASTsCreated(1);
235236

236237
buf = new StringBuilder();
@@ -244,15 +245,15 @@ public void testBasicBufferLifeCycle() throws Exception {
244245
assertEquals(true, cu1.isWorkingCopy());
245246
assertEquals(true, cu1.hasUnsavedChanges());
246247
assertNewProblemReported(new ExpectedProblemReport(cu1, 1));
247-
assertEquals(1, getCacheSize());
248+
assertEquals(0, getCacheSize());
248249
assertNewASTsCreated(1);
249250

250251
saveDocument(cu1);
251252

252253
assertEquals(true, cu1.isWorkingCopy());
253254
assertEquals(false, cu1.hasUnsavedChanges());
254255
assertNewProblemReported();
255-
assertEquals(1, getCacheSize());
256+
assertEquals(0, getCacheSize());
256257
assertNewASTsCreated(0);
257258

258259
closeDocument(cu1);
@@ -284,7 +285,7 @@ public void testBasicBufferLifeCycleWithoutSave() throws Exception {
284285
assertEquals(true, cu1.isWorkingCopy());
285286
assertEquals(false, cu1.hasUnsavedChanges());
286287
assertNewProblemReported(new ExpectedProblemReport(cu1, 1));
287-
assertEquals(1, getCacheSize());
288+
assertEquals(0, getCacheSize());
288289
assertNewASTsCreated(1);
289290

290291
buf = new StringBuilder();
@@ -300,7 +301,7 @@ public void testBasicBufferLifeCycleWithoutSave() throws Exception {
300301
assertEquals(true, cu1.isWorkingCopy());
301302
assertEquals(true, cu1.hasUnsavedChanges());
302303
assertNewProblemReported(new ExpectedProblemReport(cu1, 0));
303-
assertEquals(1, getCacheSize());
304+
assertEquals(0, getCacheSize());
304305
assertNewASTsCreated(1);
305306

306307
closeDocument(cu1);
@@ -395,7 +396,7 @@ public void testIncrementalChangeDocument() throws Exception {
395396
assertEquals(true, cu1.isWorkingCopy());
396397
assertEquals(false, cu1.hasUnsavedChanges());
397398
assertNewProblemReported(new ExpectedProblemReport(cu1, 0));
398-
assertEquals(1, getCacheSize());
399+
assertEquals(0, getCacheSize());
399400
assertNewASTsCreated(1);
400401

401402
buf = new StringBuilder();
@@ -407,15 +408,15 @@ public void testIncrementalChangeDocument() throws Exception {
407408
assertEquals(true, cu1.isWorkingCopy());
408409
assertEquals(true, cu1.hasUnsavedChanges());
409410
assertNewProblemReported(new ExpectedProblemReport(cu1, 1));
410-
assertEquals(1, getCacheSize());
411+
assertEquals(0, getCacheSize());
411412
assertNewASTsCreated(1);
412413

413414
saveDocument(cu1);
414415

415416
assertEquals(true, cu1.isWorkingCopy());
416417
assertEquals(false, cu1.hasUnsavedChanges());
417418
assertNewProblemReported();
418-
assertEquals(1, getCacheSize());
419+
assertEquals(0, getCacheSize());
419420
assertNewASTsCreated(0);
420421

421422
closeDocument(cu1);
@@ -461,7 +462,7 @@ public void testFixInDependencyScenario() throws Exception {
461462
assertEquals(true, cu2.isWorkingCopy());
462463
assertEquals(false, cu2.hasUnsavedChanges());
463464
assertNewProblemReported(new ExpectedProblemReport(cu2, 1));
464-
assertEquals(1, getCacheSize());
465+
assertEquals(0, getCacheSize());
465466
assertNewASTsCreated(1);
466467

467468
openDocument(cu1, cu1.getSource(), 1);
@@ -471,7 +472,7 @@ public void testFixInDependencyScenario() throws Exception {
471472
assertEquals(true, cu2.isWorkingCopy());
472473
assertEquals(false, cu2.hasUnsavedChanges());
473474
assertNewProblemReported(new ExpectedProblemReport(cu2, 1), new ExpectedProblemReport(cu1, 0));
474-
assertEquals(1, getCacheSize());
475+
assertEquals(0, getCacheSize());
475476
assertNewASTsCreated(2);
476477

477478
buf = new StringBuilder();
@@ -487,7 +488,7 @@ public void testFixInDependencyScenario() throws Exception {
487488
assertEquals(true, cu2.isWorkingCopy());
488489
assertEquals(false, cu2.hasUnsavedChanges());
489490
assertNewProblemReported(new ExpectedProblemReport(cu2, 0), new ExpectedProblemReport(cu1, 0));
490-
assertEquals(1, getCacheSize());
491+
assertEquals(0, getCacheSize());
491492
assertNewASTsCreated(2);
492493

493494
saveDocument(cu1);
@@ -497,7 +498,7 @@ public void testFixInDependencyScenario() throws Exception {
497498
assertEquals(true, cu2.isWorkingCopy());
498499
assertEquals(false, cu2.hasUnsavedChanges());
499500
assertNewProblemReported();
500-
assertEquals(1, getCacheSize());
501+
assertEquals(0, getCacheSize());
501502
assertNewASTsCreated(0);
502503

503504
closeDocument(cu1);
@@ -800,7 +801,7 @@ public void testCloseMissingResource() throws Exception {
800801
assertEquals(true, cu1.isWorkingCopy());
801802
assertEquals(false, cu1.hasUnsavedChanges());
802803
assertNewProblemReported(new ExpectedProblemReport(cu1, 1));
803-
assertEquals(1, getCacheSize());
804+
assertEquals(0, getCacheSize());
804805
assertNewASTsCreated(1);
805806

806807
StringBuilder buf2 = new StringBuilder();

0 commit comments

Comments
 (0)