javac ast indices: IDEA-177334

1. add check for cancellation for long running queries
2. remove redundant log.debug since it's redundant (logged problem is already fixed)
This commit is contained in:
Dmitry Batkovich
2017-08-09 18:04:38 +03:00
parent 88dd6b5bc4
commit ead3b98bdb
3 changed files with 8 additions and 5 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@ package com.intellij.compiler.backwardRefs;
import com.intellij.compiler.server.BuildManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
@@ -236,6 +237,10 @@ class CompilerReferenceReader {
break;
}
if (result.add(curClass)) {
if (result.size() % 100 == 0) {
ProgressManager.checkCanceled();
}
if (!(curClass instanceof LightRef.LightAnonymousClassDef) && (checkBaseClassAmbiguity || curClass != hierarchyElement)) {
if (hasMultipleDefinitions(curClass)) {
return null;
@@ -16,7 +16,6 @@
package com.intellij.compiler.backwardRefs;
import com.intellij.compiler.CompilerDirectHierarchyInfo;
import com.intellij.compiler.CompilerWorkspaceConfiguration;
import com.intellij.compiler.backwardRefs.view.CompilerReferenceFindUsagesTestInfo;
import com.intellij.compiler.backwardRefs.view.CompilerReferenceHierarchyTestInfo;
import com.intellij.compiler.backwardRefs.view.DirtyScopeTestInfo;
@@ -586,9 +585,6 @@ public class CompilerReferenceServiceImpl extends CompilerReferenceServiceEx imp
throw e;
}
if ((--myActiveBuilds == 0) && myProject.isOpen()) {
LOG.assertTrue(myReader == null, "isAutoMakeEnabled = " +
ReadAction
.compute(() -> CompilerWorkspaceConfiguration.getInstance(myProject).MAKE_PROJECT_ON_SAVE));
myReader = CompilerReferenceReader.create(myProject);
LOG.info("backward reference index reader " + (myReader == null ? "doesn't exist" : "is opened"));
}
@@ -20,6 +20,7 @@ import com.intellij.compiler.CompilerReferenceService;
import com.intellij.compiler.backwardRefs.CompilerReferenceServiceEx;
import com.intellij.compiler.backwardRefs.ReferenceIndexUnavailableException;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectFileIndex;
import com.intellij.openapi.roots.ProjectRootManager;
@@ -165,6 +166,7 @@ public class FrequentlyUsedInheritorInspection extends BaseJavaLocalInspectionTo
.of(directInheritors)
.filter(inheritor -> !(inheritor instanceof LightRef.LightAnonymousClassDef))
.map(inheritor -> {
ProgressManager.checkCanceled();
int count = compilerRefService.getInheritorCount(inheritor);
if (count != 1 && count * 100 > finalHierarchyCardinality * PERCENT_THRESHOLD) {
return new Object() {