kayler-renslow / arma-intellij-plugin

A plugin for Intellij IDEA that allows for syntactical analysis, code inspections, and other nifty features for the SQF scripting language in Arma 3.
MIT License
41 stars 10 forks source link

Header Stringtable Key Stack Overflow #40

Closed kayler-renslow closed 7 years ago

kayler-renslow commented 7 years ago

Plugin Version

1.0.7

Summary

StackOverFlowException when stringtable key is used

Detail

This happens often.

null
java.lang.StackOverflowError
    at com.intellij.openapi.roots.impl.RootIndex.getInfoForFile(RootIndex.java:400)
    at com.intellij.openapi.roots.impl.DirectoryIndexImpl.getInfoForFile(DirectoryIndexImpl.java:143)
    at com.intellij.openapi.roots.impl.FileIndexBase.getInfoForFileOrDirectory(FileIndexBase.java:29)
    at com.intellij.openapi.roots.impl.ProjectFileIndexImpl.getModuleForFile(ProjectFileIndexImpl.java:118)
    at com.intellij.openapi.roots.impl.ProjectFileIndexImpl.getModuleForFile(ProjectFileIndexImpl.java:111)
    at com.kaylerrenslow.a3plugin.util.PluginUtil.getModuleForPsiFile(PluginUtil.java:119)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:42)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReferences(HeaderStringtableKeyMixin.java:59)
    at com.kaylerrenslow.a3plugin.lang.header.psi.mixin.HeaderStringtableKeyMixin.getReference(HeaderStringtableKeyMixin.java:36)
    at com.intellij.psi.impl.SharedPsiElementImplUtil.getReferences(SharedPsiElementImplUtil.java:93)
    at com.intellij.psi.impl.PsiElementBase.getReferences(PsiElementBase.java:82)

Reproduce code:

class EquipmentModuleSpacer{
    title = "";
    values[] = { "" };
    texts[] = { "" };
    default = "";
};

class EquipmentModuleOptionsTitle{
    title = $STR_PARAMS_FAR_REVIVE_OPTIONS;
    values[] = { "" };
    texts[] = { "" };
    default = "";
};

class EquipmentModuleUseRandomAiLoadouts{
    title = $STR_PARAMS_USE_RANDOM_UI_LOADOUT;
    values[] = {1,0};
    texts[] = { $STR_OPTION_YES, $STR_OPTION_NO };
    default = 1;
};
kayler-renslow commented 7 years ago

Fixed in commit d479c5a

kayler-renslow commented 7 years ago

fixed in release 1.0.8