MSDehghan / AnsiblePlugin

IntelliJ plugin that helps developing Ansible files
129 stars 16 forks source link

IllegalStateException when previewing Markdown file #3

Closed bjansen closed 3 years ago

bjansen commented 3 years ago

Steps to reproduce:

java.lang.IllegalStateException: File VirtualFileWindow in C:\Users\...\README.md is invalid
    at com.intellij.psi.impl.file.impl.FileManagerImpl.findViewProvider(FileManagerImpl.java:184)
    at com.intellij.psi.impl.file.impl.FileManagerImpl.findFile(FileManagerImpl.java:368)
    at com.intellij.psi.impl.PsiManagerImpl.findFile(PsiManagerImpl.java:154)
    at ir.msdehghan.plugins.ansible.JsonSchemaExclude.isExcluded(JsonSchemaExclude.java:24)
    at com.jetbrains.jsonSchema.remote.JsonSchemaCatalogManager.lambda$getSchemaFileForFile$2(JsonSchemaCatalogManager.java:96)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.lambda$findFirstSafe$0(ExtensionProcessingHelper.java:45)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:55)
    at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.java:45)
    at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.java:53)
    at com.jetbrains.jsonSchema.remote.JsonSchemaCatalogManager.getSchemaFileForFile(JsonSchemaCatalogManager.java:96)
    at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl.resolveSchemaFromOtherSources(JsonSchemaServiceImpl.java:434)
    at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl.getSchemasForFile(JsonSchemaServiceImpl.java:230)
    at com.jetbrains.jsonSchema.impl.JsonCachedValues.getSchemaFile(JsonCachedValues.java:237)
    at com.jetbrains.jsonSchema.impl.JsonCachedValues.lambda$computeSchemaForFile$6(JsonCachedValues.java:224)
    at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:153)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:78)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:150)
    at com.jetbrains.jsonSchema.impl.JsonCachedValues.computeSchemaForFile(JsonCachedValues.java:222)
    at com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl.getSchemaObject(JsonSchemaServiceImpl.java:326)
    at org.jetbrains.yaml.schema.YamlJsonSchemaInspectionBase.buildVisitor(YamlJsonSchemaInspectionBase.java:38)
    at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:46)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.doInspectInjectedPsi(LocalInspectionsPass.java:786)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$inspectInjectedPsi$9(LocalInspectionsPass.java:354)
    at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:136)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1132)
    at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:92)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
    at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:104)
    at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:83)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:172)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:183)
    at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:83)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool.awaitJoin(ForkJoinPool.java:1708)
    at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1039)
    at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:71)
    at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:48)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processFilesConcurrentlyDespiteWriteActions(PsiSearchHelperImpl.java:489)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processPsiFileRoots(PsiSearchHelperImpl.java:397)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processCandidates(PsiSearchHelperImpl.java:900)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processGlobalRequests(PsiSearchHelperImpl.java:884)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processGlobalRequestsOptimized(PsiSearchHelperImpl.java:836)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:761)
    at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:24)
    at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:99)
    at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:116)
    at com.intellij.util.MergeQuery.processResults(MergeQuery.java:22)
    at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:99)
    at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:116)
    at com.intellij.util.UniqueResultsQuery.processResults(UniqueResultsQuery.java:39)
    at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:99)
    at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:91)
    at com.intellij.find.findUsages.JavaFindUsagesHelper.addElementUsages(JavaFindUsagesHelper.java:458)
    at com.intellij.find.findUsages.JavaFindUsagesHelper.processElementUsages(JavaFindUsagesHelper.java:117)
    at org.jetbrains.plugins.cucumber.java.CucumberJavaUtil.processParameterTypesDefinedByTypeRegistry(CucumberJavaUtil.java:390)
    at org.jetbrains.plugins.cucumber.java.CucumberJavaUtil.doGetAllParameterTypes(CucumberJavaUtil.java:357)
    at org.jetbrains.plugins.cucumber.java.CucumberJavaUtil.lambda$getAllParameterTypes$1(CucumberJavaUtil.java:343)
    at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:153)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:78)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:150)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:120)
    at org.jetbrains.plugins.cucumber.java.CucumberJavaUtil.getAllParameterTypes(CucumberJavaUtil.java:342)
    at org.jetbrains.plugins.cucumber.java.steps.AbstractJavaStepDefinition.getCucumberRegex(AbstractJavaStepDefinition.java:47)
    at org.jetbrains.plugins.cucumber.steps.AbstractStepDefinition.getPattern(AbstractStepDefinition.java:73)
    at org.jetbrains.plugins.cucumber.steps.AbstractStepDefinition.matches(AbstractStepDefinition.java:48)
    at org.jetbrains.plugins.cucumber.steps.reference.CucumberStepReference.multiResolveInner(CucumberStepReference.java:124)
    at org.jetbrains.plugins.cucumber.steps.reference.CucumberStepReference$MyResolver.resolve(CucumberStepReference.java:159)
    at org.jetbrains.plugins.cucumber.steps.reference.CucumberStepReference$MyResolver.resolve(CucumberStepReference.java:156)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:149)
    at com.intellij.openapi.util.Computable.get(Computable.java:17)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:221)
    at com.intellij.openapi.util.Computable.get(Computable.java:17)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:199)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:149)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:164)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:157)
    at org.jetbrains.plugins.cucumber.steps.reference.CucumberStepReference.multiResolve(CucumberStepReference.java:94)
    at org.jetbrains.plugins.cucumber.steps.reference.CucumberStepReference.isReferenceTo(CucumberStepReference.java:77)
    at org.jetbrains.plugins.cucumber.CucumberUtil$MyReferenceCheckingProcessor.executeInternal(CucumberUtil.java:399)
    at org.jetbrains.plugins.cucumber.CucumberUtil$MyReferenceCheckingProcessor.execute(CucumberUtil.java:386)
    at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:88)
    at com.intellij.psi.impl.search.LowLevelSearchUtil.lambda$processElementsAtOffsets$0(LowLevelSearchUtil.java:179)
    at com.intellij.psi.impl.search.LowLevelSearchUtil.processOffsets(LowLevelSearchUtil.java:205)
    at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:178)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processElementsWithWord$1(PsiSearchHelperImpl.java:202)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:280)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:271)
    at com.intellij.openapi.application.ReadActionProcessor.lambda$process$0(ReadActionProcessor.java:25)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:885)
    at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
    at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:25)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processVirtualFile$11(PsiSearchHelperImpl.java:543)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1132)
    at com.intellij.openapi.application.ex.ApplicationUtil.tryRunReadAction(ApplicationUtil.java:33)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processVirtualFile(PsiSearchHelperImpl.java:525)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processPsiFileRoots$7(PsiSearchHelperImpl.java:400)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$8(PsiSearchHelperImpl.java:473)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:172)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:183)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$9(PsiSearchHelperImpl.java:472)
    at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:136)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1137)
    at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:92)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
    at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:104)
    at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:86)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Environment:

IntelliJ IDEA 2020.3 EAP (Ultimate Edition) Build #IU-203.5419.21, built on October 28, 2020 IntelliJ IDEA EAP User Expiration date: November 27, 2020 Runtime version: 11.0.8+10-b1145.3 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 10 10.0 GC: G1 Young Generation, G1 Old Generation Memory: 2048M Cores: 12 Registry: debugger.watches.in.variables=false Non-Bundled Plugins: PlantUML integration, YourKit Java Profiler 2019.8-b137 Integration, org.sonarlint.idea, MavenRunHelper, com.dmarcotte.handlebars, ir.msdehghan.plugins.ansible

bjansen commented 3 years ago

Oh, I think it happens because my markdown file has a YAML snippet inside, so it might be an injected language fragment of type YAMLFileType. That's why isExcluded() does not discard it.

# title
```yaml
key:
  key: 0
```
MSDehghan commented 3 years ago

Hi @bjansen Thank you so much for your report. I wasn't able to reproduce the bug in IntelliJ 2020.2 both Community version and Ultimate. I created a .md file and copied the given lines to it. then i switched to 'Show Preview Only' mode and everything was fine. even i closed the IDE and then open it again and it was ok.

Do you think it's happening only in 2020.3 EAP? Or is there anything else that help me reproduce the bug?

bjansen commented 3 years ago

It looks like it's another bug that happens when more than one project is open at the same time :