Description
Description
Now visual names and config IDs are shared, so after Settings UI revision implementation already existing config file (.idea/utbot-settings.xml) may contain "unknown" enum names that causes an error during deserialization.
Corresponding stracktrace looks like this:
Caused by: java.lang.NullPointerException: Parameter specified as non-null is null: method org.utbot.intellij.plugin.settings.Settings$State.setMockStrategy, parameter <set-?>
org.utbot.intellij.plugin.settings.Settings$State.setMockStrategy(Settings.kt)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
com.intellij.serialization.PropertyAccessor.set(PropertyAccessor.java:97)
com.intellij.util.xmlb.XmlSerializerImpl.doSet(XmlSerializerImpl.java:221)
com.intellij.util.xmlb.OptionTagBinding.deserialize(OptionTagBinding.java:120)
com.intellij.util.xmlb.BasePrimitiveBinding.deserializeUnsafe(BasePrimitiveBinding.java:55)
com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:246)
com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:200)
com.intellij.util.xmlb.BeanBinding.deserialize(BeanBinding.java:143)
com.intellij.configurationStore.JdomSerializerImpl.deserialize(xmlSerializer.kt:91)
com.intellij.configurationStore.DefaultStateSerializerKt.deserializeState(DefaultStateSerializer.kt:29)
com.intellij.configurationStore.StateStorageBase.deserializeState(StateStorageBase.kt:35)
com.intellij.configurationStore.StateGetterImpl.getState(StorageBaseEx.kt:57)
com.intellij.configurationStore.ComponentStoreImpl.doInitComponent(ComponentStoreImpl.kt:423)
com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:373)
com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:124)
com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:48)
com.intellij.serviceContainer.ComponentManagerImpl.initializeComponent$intellij_platform_serviceContainer(ComponentManagerImpl.kt:525)
com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:52)
com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:36)
com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:60)
com.intellij.serviceContainer.ComponentManagerImpl.instantiateService(ComponentManagerImpl.kt:1084)
com.intellij.serviceContainer.ComponentManagerImpl$preloadServices$1.invoke(ComponentManagerImpl.kt:1056)
com.intellij.serviceContainer.ComponentManagerImpl$preloadServices$1.run(ComponentManagerImpl.kt:58)
java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Solution
Split IDs into UI-related names and config-related constants.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status