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

Exception when parsing Route attributes (2022.1.223) #1893

Closed
mhujer opened this issue May 2, 2022 · 3 comments
Closed

Exception when parsing Route attributes (2022.1.223) #1893

mhujer opened this issue May 2, 2022 · 3 comments
Labels

Comments

@mhujer
Copy link

mhujer commented May 2, 2022

Hello, I'm getting exceptions for controllers which use attributes for Routes with multiple languages, such as (simplified):

class DashboardController extends AppController
{
    #[Route([
        'cs' => '/foobar/baz/{id}',
        'sk' => '/foobarbaz/bat/{id}',
    ], name: 'dashboard', methods: ['GET'])]
    #[IsGranted('ROLE_USER')]
    public function __invoke(): Response
    {
    }
}
Error while indexing C:\dev\app\src\App\Dashboard\DashboardController.php
To reindex this file IDEA has to be restarted

java.lang.AssertionError: cannot create element from text:
<?php
[
        'cs' => '/foobar/baz/{id}',
        'sk' => '/foobarbaz/bat/{id}',
    ]
	at com.jetbrains.php.lang.psi.PhpPsiElementFactory.createPhpPsiFromText(PhpPsiElementFactory.java:292)
	at com.jetbrains.php.lang.psi.stubs.indexes.expectedArguments.PhpExpectedFunctionScalarArgument.createReference(PhpExpectedFunctionScalarArgument.java:73)
	at fr.adrienbrault.idea.symfony2plugin.util.PhpPsiAttributesUtil.getAttributeValueByNameAsStringWithDefaultParameterFallback(PhpPsiAttributesUtil.java:69)
	at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor.visitPhpAttributesList(AnnotationRouteElementWalkingVisitor.java:184)
	at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor.visitElement(AnnotationRouteElementWalkingVisitor.java:52)
	at com.intellij.psi.impl.PsiElementBase.accept(PsiElementBase.java:273)
	at com.jetbrains.php.lang.psi.elements.impl.PhpPsiElementImpl.accept(PhpPsiElementImpl.java:76)
	at com.intellij.psi.PsiWalkingState.visit(PsiWalkingState.java:67)
	at com.intellij.psi.PsiWalkingState.visit(PsiWalkingState.java:24)
	at com.intellij.util.WalkingState.walkChildren(WalkingState.java:62)
	at com.intellij.util.WalkingState.elementStarted(WalkingState.java:49)
	at com.intellij.psi.PsiWalkingState.elementStarted(PsiWalkingState.java:76)
	at com.intellij.psi.PsiRecursiveElementWalkingVisitor.visitElement(PsiRecursiveElementWalkingVisitor.java:48)
	at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor.visitElement(AnnotationRouteElementWalkingVisitor.java:55)
	at com.intellij.psi.PsiElementVisitor.visitFile(PsiElementVisitor.java:35)
	at com.intellij.psi.PsiRecursiveElementWalkingVisitor.visitFile(PsiRecursiveElementWalkingVisitor.java:70)
	at com.intellij.extapi.psi.PsiFileBase.accept(PsiFileBase.java:60)
	at com.jetbrains.php.lang.psi.PhpFileImpl.accept(PhpFileImpl.java:200)
	at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.RoutesStubIndex.lambda$getIndexer$0(RoutesStubIndex.java:84)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapByIndexer(MapReduceIndex.java:308)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:299)
	at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:176)
	at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:40)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapInputAndPrepareUpdate(MapReduceIndex.java:244)
	at com.intellij.indexing.composite.CompositeInvertedIndexBase.updateBaseIndex(CompositeInvertedIndexBase.java:284)
	at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:61)
	at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:28)
	at com.intellij.util.indexing.FileBasedIndexImpl.createSingleIndexValueApplier(FileBasedIndexImpl.java:1593)
	at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$27(FileBasedIndexImpl.java:1459)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:650)
	at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1406)
	at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1382)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$indexOneFileOfJob$4(IndexUpdateRunner.java:272)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:536)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:501)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1152)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:115)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:58)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:189)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:176)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:58)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:501)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.executeSynchronously(NonBlockingReadActionImpl.java:428)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl.executeSynchronously(NonBlockingReadActionImpl.java:186)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.indexOneFileOfJob(IndexUpdateRunner.java:276)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$indexJobsFairly$3(IndexUpdateRunner.java:213)
	at com.intellij.openapi.progress.impl.ProgressSuspender.executeNonSuspendableSection(ProgressSuspender.java:83)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.indexJobsFairly(IndexUpdateRunner.java:216)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$doIndexFiles$2(IndexUpdateRunner.java:150)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:829)
Haehnchen added a commit that referenced this issue May 2, 2022
…rors and check for direct attribute value via string
@Haehnchen
Copy link
Owner

fixed via workaround

@Haehnchen Haehnchen added the fixed label May 2, 2022
Haehnchen added a commit that referenced this issue May 2, 2022
…rors and check for direct attribute value via string
Haehnchen added a commit that referenced this issue May 2, 2022
…round

#1893 workaround in wrongly implemented attributes handling; catch er…
@bsiimple
Copy link

bsiimple commented May 2, 2022

Same here:

`java.lang.AssertionError: cannot create element from text:

'/logout', 'pl' => '/logout' ] at com.jetbrains.php.lang.psi.PhpPsiElementFactory.createPhpPsiFromText(PhpPsiElementFactory.java:292) at com.jetbrains.php.lang.psi.stubs.indexes.expectedArguments.PhpExpectedFunctionScalarArgument.createReference(PhpExpectedFunctionScalarArgument.java:73) at fr.adrienbrault.idea.symfony2plugin.util.PhpPsiAttributesUtil.getAttributeValueByNameAsStringWithDefaultParameterFallback(PhpPsiAttributesUtil.java:69) at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor.visitPhpAttributesList(AnnotationRouteElementWalkingVisitor.java:184) at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor.visitElement(AnnotationRouteElementWalkingVisitor.java:52) at com.intellij.psi.impl.PsiElementBase.accept(PsiElementBase.java:273) at com.jetbrains.php.lang.psi.elements.impl.PhpPsiElementImpl.accept(PhpPsiElementImpl.java:76) at com.intellij.psi.PsiWalkingState.visit(PsiWalkingState.java:67) at com.intellij.psi.PsiWalkingState.visit(PsiWalkingState.java:24) at com.intellij.util.WalkingState.walkChildren(WalkingState.java:62) at com.intellij.util.WalkingState.elementStarted(WalkingState.java:49) at com.intellij.psi.PsiWalkingState.elementStarted(PsiWalkingState.java:76) at com.intellij.psi.PsiRecursiveElementWalkingVisitor.visitElement(PsiRecursiveElementWalkingVisitor.java:48) at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor.visitElement(AnnotationRouteElementWalkingVisitor.java:55) at com.intellij.psi.PsiElementVisitor.visitFile(PsiElementVisitor.java:35) at com.intellij.psi.PsiRecursiveElementWalkingVisitor.visitFile(PsiRecursiveElementWalkingVisitor.java:70) at com.intellij.extapi.psi.PsiFileBase.accept(PsiFileBase.java:60) at com.jetbrains.php.lang.psi.PhpFileImpl.accept(PhpFileImpl.java:200) at fr.adrienbrault.idea.symfony2plugin.stubs.indexes.RoutesStubIndex.lambda$getIndexer$0(RoutesStubIndex.java:84) at com.intellij.util.indexing.impl.MapReduceIndex.mapByIndexer(MapReduceIndex.java:308) at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:299) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:176) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:40) at com.intellij.util.indexing.impl.MapReduceIndex.mapInputAndPrepareUpdate(MapReduceIndex.java:244) at com.intellij.indexing.composite.CompositeInvertedIndexBase.updateBaseIndex(CompositeInvertedIndexBase.java:284) at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:61) at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:28) at com.intellij.util.indexing.FileBasedIndexImpl.createSingleIndexValueApplier(FileBasedIndexImpl.java:1593) at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$27(FileBasedIndexImpl.java:1459) at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:650) at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1406) at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1382) at com.intellij.util.indexing.FileBasedIndexImpl.processRefreshedFile(FileBasedIndexImpl.java:1333) at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1720) at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1717) at com.intellij.util.indexing.UpdateTask.process(UpdateTask.java:63) at com.intellij.util.indexing.UpdateTask.processAll(UpdateTask.java:32) at com.intellij.util.indexing.FileBasedIndexImpl.forceUpdate(FileBasedIndexImpl.java:1737) at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:812) at com.intellij.psi.stubs.StubIndexEx.getContainingIds(StubIndexEx.java:352) at com.intellij.psi.stubs.StubIndexEx.processElements(StubIndexEx.java:159) at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:99) at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:87) at com.jetbrains.php.PhpIndexImpl.getElements(PhpIndexImpl.java:594) at com.jetbrains.php.PhpIndexImpl.getDirectSubclassesInner(PhpIndexImpl.java:634) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) at com.jetbrains.php.PhpIndexImpl.getDirectSubclasses(PhpIndexImpl.java:629) at com.jetbrains.php.PhpIndexImpl.fillAllSubclasses(PhpIndexImpl.java:653) at com.jetbrains.php.PhpIndexImpl.getAllSubclasses(PhpIndexImpl.java:647) at fr.adrienbrault.idea.symfony2plugin.util.SymfonyBundleUtil.getBundles(SymfonyBundleUtil.java:41) at fr.adrienbrault.idea.symfony2plugin.templating.path.BundleTwigNamespaceExtension.getNamespaces(BundleTwigNamespaceExtension.java:26) at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTwigNamespaces(TwigUtil.java:1379) at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplateNamesForFile(TwigUtil.java:1305) at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplatesExtendingFile(TwigUtil.java:2224) at fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil.getTemplatesExtendingFile(TwigUtil.java:2212) at fr.adrienbrault.idea.symfony2plugin.twig.loader.FileImplementsLazyLoader.getFiles(FileImplementsLazyLoader.java:35) at fr.adrienbrault.idea.symfony2plugin.twig.utils.TwigBlockUtil.hasBlockImplementations(TwigBlockUtil.java:66) at fr.adrienbrault.idea.symfony2plugin.templating.TwigLineMarkerProvider.attachBlockImplements(TwigLineMarkerProvider.java:249) at fr.adrienbrault.idea.symfony2plugin.templating.TwigLineMarkerProvider.collectSlowLineMarkers(TwigLineMarkerProvider.java:95) at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryProviders(LineMarkersPass.java:201) at com.intellij.codeInsight.daemon.impl.LineMarkersPass.lambda$doCollectInformation$3(LineMarkersPass.java:96) at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:87) at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:91) at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:56) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:419) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1152) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:412) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:411) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:387) at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:174) at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:213) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:385) at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:184) 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) `

@mhujer
Copy link
Author

mhujer commented May 10, 2022

@Haehnchen Thank you for fixing this! 👏

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

No branches or pull requests

3 participants