shopwareLabs / shopware6-phpstorm-plugin

62 stars 9 forks source link

Failed to build index 'de.shyim.shopware6.backend.system-config' for plugin config #211

Closed jankal closed 2 months ago

jankal commented 3 months ago

PHPStorm version: Build #PS-242.20224.361, built on August 10, 2024 Plugin version: 0.0.43

I get this annoying exception from time to time:

com.intellij.diagnostic.PluginException: Failed to build index 'de.shyim.shopware6.backend.system-config' for file file:///Users/jankal/Projekte/nuonic/client/app.sw.project/vendor/pickware/dsv-bundle/src/Resources/config/dsv.xml (id = 52050) (file type = XML) [Plugin: de.shyim.shopware6]
    at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
    at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:90)
    at com.intellij.util.indexing.diagnostic.BrokenIndexingDiagnostics$DefaultListener.onFileIndexMappingFailed(BrokenIndexingDiagnostics.kt:47)
    at com.intellij.util.indexing.FileBasedIndexImpl.createSingleIndexValueApplier(FileBasedIndexImpl.java:1638)
    at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$23(FileBasedIndexImpl.java:1504)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.lambda$freezeFileTypeTemporarilyWithProvidedValueIn$15(FileTypeManagerImpl.java:738)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:802)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyWithProvidedValueIn(FileTypeManagerImpl.java:734)
    at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1457)
    at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1431)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$Indexer.getApplierForFileIndexUpdate$lambda$1(IndexUpdateRunner.kt:260)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:840)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:872)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:604)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:567)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:291)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:965)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:93)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:155)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:138)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:96)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:217)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:202)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:96)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:135)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:93)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:567)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.executeSynchronously(NonBlockingReadActionImpl.java:492)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl.executeSynchronously(NonBlockingReadActionImpl.java:220)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$Indexer.getApplierForFileIndexUpdate(IndexUpdateRunner.kt:263)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$Indexer.indexOneFile(IndexUpdateRunner.kt:209)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.indexOneFileHandleExceptions(IndexUpdateRunner.kt:160)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.access$indexOneFileHandleExceptions(IndexUpdateRunner.kt:45)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$doIndexFiles$1$1.invoke(IndexUpdateRunner.kt:114)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$doIndexFiles$1$1.invoke(IndexUpdateRunner.kt:111)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:339)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invokeSuspend(coroutines.kt:232)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62)
    at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:261)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:231)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$doIndexFiles$1.invokeSuspend(IndexUpdateRunner.kt:111)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$doIndexFiles$1.invoke(IndexUpdateRunner.kt)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$doIndexFiles$1.invoke(IndexUpdateRunner.kt)
    at com.intellij.util.indexing.contentQueue.IndexUpdateRunner$runConcurrently$1$1$1.invokeSuspend(IndexUpdateRunner.kt:139)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
    at kotlinx.coroutines.internal.SoftLimitedDispatcher$Worker.run(SoftLimitedDispatcher.kt:125)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750)
Caused by: com.intellij.util.indexing.impl.MapReduceIndexMappingException: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInputAndPrepareUpdate(MapReduceIndex.java:256)
    at com.intellij.indexing.composite.CompositeInvertedIndexBase.updateBaseIndex(CompositeInvertedIndexBase.java:288)
    at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:65)
    at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:30)
    at com.intellij.util.indexing.FileBasedIndexImpl.createSingleIndexValueApplier(FileBasedIndexImpl.java:1634)
    ... 56 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.base/java.util.Collections$SingletonList.get(Collections.java:5179)
    at de.shyim.shopware6.index.SystemConfigIndex.getNamespaceFromInput(SystemConfigIndex.kt:103)
    at de.shyim.shopware6.index.SystemConfigIndex.getIndexer$lambda$0(SystemConfigIndex.kt:37)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapByIndexer(MapReduceIndex.java:318)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:309)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInputAndPrepareUpdate(MapReduceIndex.java:250)
    ... 60 more

The mentioned XML config of the pickware/dsv-bundle looks like this:

<?xml version="1.0" encoding="UTF-8" ?>
<config
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/shopware/master/src/Core/System/SystemConfig/Schema/config.xsd"
>
    <card>
        <title>DSV credentials</title>
        <title lang="de-DE">DSV-Zugangsdaten</title>
        <input-field type="text">
            <name>username</name>
            <required>true</required>
            <label>Username</label>
            <label lang="de-DE">Benutzername</label>
        </input-field>
        <input-field type="password">
            <name>password</name>
            <required>true</required>
            <label>Password</label>
            <label lang="de-DE">Passwort</label>
        </input-field>
        <input-field type="text">
            <name>customerNumber</name>
            <required>true</required>
            <label>Customer number</label>
            <label lang="de-DE">Kundennummer</label>
            <helpText lang="de-DE">
                Die Kundennummer ihres Unternehmens, die Sie von DSV erhalten haben. Diese Nummer wird genutzt,
                um Frachtzahler und Auftraggeber zu bestimmen.
            </helpText>
            <helpText>
                The customer number of your company, which you received from DSV. This number is used to determine
                the freight payer and the booking party.
            </helpText>
        </input-field>
        <input-field type="bool">
            <name>useTestingEndpoint</name>
            <label>Use testing webservice</label>
            <label lang="de-DE">Nutze Testing-Webservice</label>
            <helpText lang="de-DE">Nutze den Testing-Webservice von DSV anstatt den Produktive-Webservice.</helpText>
            <helpText>Use the DSV testing web service instead of the productive web service.</helpText>
        </input-field>
    </card>
</config>