DEXP-272760 IllegalStateException: Cannot init RunManager component state: name must not be null (name must not be null)

This commit is contained in:
Vladimir Krivosheev
2017-09-06 10:27:44 +02:00
parent d7e1bdf5b8
commit 6712d59a0f
3 changed files with 19 additions and 6 deletions
+6 -3
View File
@@ -36,6 +36,12 @@
<item name="org.jdom.Element Element(java.lang.String) 0">
<annotation name="org.jetbrains.annotations.NonNls" />
</item>
<item name='org.jdom.Element java.lang.String getAttributeValue(java.lang.String)'>
<annotation name='org.jetbrains.annotations.Nullable'/>
</item>
<item name='org.jdom.Element java.util.List&lt;org.jdom.Content&gt; getContent()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name="org.jdom.Element java.util.List&lt;org.jdom.Element&gt; getChildren()">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
@@ -45,9 +51,6 @@
<item name="org.jdom.Element java.util.List&lt;org.jdom.Element&gt; getChildren(java.lang.String, org.jdom.Namespace)">
<annotation name="org.jetbrains.annotations.NotNull" />
</item>
<item name='org.jdom.Element java.util.List&lt;org.jdom.Content&gt; getContent()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='org.jdom.Element org.jdom.Attribute getAttribute(java.lang.String)'>
<annotation name='org.jetbrains.annotations.Nullable'/>
</item>
@@ -44,6 +44,7 @@ import com.intellij.openapi.util.text.NaturalComparator
import com.intellij.util.IconUtil
import com.intellij.util.SmartList
import com.intellij.util.containers.*
import com.intellij.util.text.UniqueNameGenerator
import gnu.trove.THashMap
import org.jdom.Element
import java.util.*
@@ -636,8 +637,9 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi
clear(false)
}
val nameGenerator = UniqueNameGenerator()
workspaceSchemeManagerProvider.load(parentNode) {
var name = it.getAttributeValue("name")
var name: String? = it.getAttributeValue("name")
if (name == "<template>" || name == null) {
// scheme name must be unique
it.getAttributeValue("type")?.let {
@@ -647,7 +649,15 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi
name += " of type ${it}"
}
}
name
// in case if broken configuration, do not fail, just generate name
if (name == null) {
name = nameGenerator.generateUniqueName("Unnamed")
}
else {
nameGenerator.addExistingName(name!!)
}
name!!
}
workspaceSchemeManager.reload()
@@ -79,7 +79,7 @@ class SchemeManagerIprProvider(private val subStateTagName: String) : StreamProv
continue
}
nameToData.put(nameGenerator.generateUniqueName(FileUtil.sanitizeFileName(name, false) + ".xml"), child.toByteArray())
nameToData.put(nameGenerator.generateUniqueName("${FileUtil.sanitizeFileName(name, false)}.xml"), child.toByteArray())
}
}