Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

type provider API contract violation #129

Closed
neuro159 opened this issue Jul 12, 2017 · 3 comments
Closed

type provider API contract violation #129

neuro159 opened this issue Jul 12, 2017 · 3 comments

Comments

@neuro159
Copy link

neuro159 commented Jul 12, 2017

index access (==any resolve except explicit resolveLocal which is not useful) is NOT allowed from getType!
if such exception is not fixed plugin may get blacklisted
please reach me if you need assistance on how to approach this properly

Error while indexing /home/b0t/PhpstormProjects/opencity/modules/site/models/Dictionary.php
To reindex this file IDEA has to be restarted

com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentation
at com.intellij.util.indexing.FileBasedIndexImpl.handleDumbMode(FileBasedIndexImpl.java:730)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:679)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:662)
at com.intellij.psi.stubs.StubIndexImpl.doProcessStubs(StubIndexImpl.java:346)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:323)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:145)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:134)
at com.jetbrains.php.PhpIndexImpl.getByName(PhpIndexImpl.java:608)
at com.jetbrains.php.PhpIndexImpl.getInterfacesByName(PhpIndexImpl.java:285)
at com.jetbrains.php.lang.psi.elements.impl.ClassReferenceImpl.resolveGlobal(ClassReferenceImpl.java:115)
at com.jetbrains.php.lang.psi.elements.impl.ClassReferenceImpl.resolveGlobal(ClassReferenceImpl.java:69)
at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl$1.resolve(PhpReferenceImpl.java:145)
at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl$1.resolve(PhpReferenceImpl.java:142)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$0(ResolveCache.java:142)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:141)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:166)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:158)
at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.multiResolve(PhpReferenceImpl.java:137)
at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.resolve(PhpReferenceImpl.java:123)
at com.nvlad.yii2support.typeprovider.ActiveRecordTypeProvider.findClassByMethodReference(ActiveRecordTypeProvider.java:68)
at com.nvlad.yii2support.typeprovider.ActiveRecordTypeProvider.getType(ActiveRecordTypeProvider.java:41)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:57)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:39)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:56)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:39)
at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.getType(PhpReferenceImpl.java:212)
at com.jetbrains.php.lang.psi.resolve.types.PhpType.add(PhpType.java:152)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.addType(PhpTypeAnalyserVisitor.java:55)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.visitPhpAssignmentExpression(PhpTypeAnalyserVisitor.java:165)
at com.jetbrains.php.lang.psi.elements.impl.AssignmentExpressionImpl.accept(AssignmentExpressionImpl.java:37)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:46)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:39)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:56)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:39)
at com.jetbrains.php.lang.psi.elements.impl.PhpTypedElementImpl.getType(PhpTypedElementImpl.java:26)
at com.jetbrains.php.lang.psi.elements.impl.PhpExpressionImpl.getType(PhpExpressionImpl.java:59)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.visitPhpField(PhpTypeAnalyserVisitor.java:401)
at com.jetbrains.php.lang.psi.elements.impl.FieldImpl.accept(FieldImpl.java:49)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:46)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:39)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:56)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:113)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:39)
at com.jetbrains.php.lang.psi.stubs.PhpFieldElementType.createStub(PhpFieldElementType.java:35)
at com.jetbrains.php.lang.psi.stubs.PhpFieldElementType.createStub(PhpFieldElementType.java:20)
at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.createStub(DefaultStubBuilder.java:113)
at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.visitNode(DefaultStubBuilder.java:88)
at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.buildStubTree(DefaultStubBuilder.java:83)
at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTreeFor(DefaultStubBuilder.java:58)
at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:39)
at com.intellij.psi.stubs.StubTreeBuilder.buildStubTree(StubTreeBuilder.java:86)
at com.intellij.psi.stubs.StubUpdatingIndex$3.lambda$map$0(StubUpdatingIndex.java:212)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:934)
at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:211)
at com.intellij.psi.stubs.StubUpdatingIndex$3.map(StubUpdatingIndex.java:194)
at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:272)
at com.intellij.util.indexing.VfsAwareMapReduceIndex.calculateUpdateData(VfsAwareMapReduceIndex.java:99)
at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:215)
at com.intellij.util.indexing.FileBasedIndexImpl.updateSingleIndex(FileBasedIndexImpl.java:1615)
at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$18(FileBasedIndexImpl.java:1551)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:518)
at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1510)
at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1498)
at com.intellij.util.indexing.UnindexedFilesUpdater.lambda$indexFiles$0(UnindexedFilesUpdater.java:105)
at com.intellij.openapi.project.CacheUpdateRunner$MyRunnable.lambda$run$0(CacheUpdateRunner.java:229)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
at com.intellij.openapi.project.CacheUpdateRunner$MyRunnable.lambda$run$1(CacheUpdateRunner.java:246)

@insperedia
Copy link
Collaborator

insperedia commented Jul 12, 2017

Yes, it felt wrong to access index in such performance critical method, next time will post a questionon forum first.
I published version where this functionality is disabled.
Working now on performant and index access free solution.

insperedia pushed a commit that referenced this issue Jul 12, 2017
@neuro159
Copy link
Author

return a custom signature key (and params as required) and do lookups/future work in the "getBySignature"

@insperedia
Copy link
Collaborator

fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants