FWDekker/intellij-randomness

PHPStorm threw fatal error

niraj-toad opened this issue · 3 comments

Version information

  • Randomness version: 2.6.1
  • IDE version: PS-202.7319.77
  • Operating system: Mac OS X
  • Java version: 11.0.8

Stacktrace

com.intellij.diagnostic.PluginException: Cannot init component state (componentName=, componentClass=StringSettings) [Plugin: com.fwdekker.randomness]
	at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:114)
	at com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:63)
	at com.intellij.serviceContainer.ComponentManagerImpl.initializeComponent$intellij_platform_serviceContainer(ComponentManagerImpl.kt:357)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:53)
	at com.intellij.serviceContainer.ServiceComponentAdapter.access$createAndInitialize(ServiceComponentAdapter.kt:13)
	at com.intellij.serviceContainer.ServiceComponentAdapter$doCreateInstance$1.run(ServiceComponentAdapter.kt:43)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:192)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:42)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:413)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:395)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
	at com.fwdekker.randomness.string.StringSettings$Companion.getDefault(StringSettings.kt:47)
	at com.fwdekker.randomness.string.StringInsertAction.<init>(StringActions.kt:37)
	at com.fwdekker.randomness.string.StringInsertAction.<init>(StringActions.kt)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at com.intellij.util.ReflectionUtil.newInstance(ReflectionUtil.java:430)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.instantiate(ActionManagerImpl.java:212)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:193)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:549)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:537)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActions(ActionManagerImpl.java:1551)
	at com.intellij.openapi.actionSystem.impl.ActionPreloader.preload(ActionPreloader.java:15)
	at com.intellij.openapi.application.Preloader.lambda$preload$0(Preloader.java:84)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:170)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
	at com.intellij.openapi.application.Preloader.lambda$preload$1(Preloader.java:74)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:215)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:26)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:194)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:207)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:183)
	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:834)
Caused by: com.intellij.util.xmlb.XmlSerializationException: Cannot deserialize class com.fwdekker.randomness.string.StringSettings
	at com.intellij.configurationStore.JdomSerializerImpl.deserialize(xmlSerializer.kt:96)
	at com.intellij.configurationStore.XmlSerializer.deserialize(xmlSerializer.kt:24)
	at com.intellij.configurationStore.DefaultStateSerializerKt.deserializeState(DefaultStateSerializer.kt:26)
	at com.intellij.configurationStore.StateStorageBase.deserializeState(StateStorageBase.kt:35)
	at com.intellij.configurationStore.StateGetterImpl.getState(StorageBaseEx.kt:57)
	at com.intellij.configurationStore.ComponentStoreImpl.doInitComponent(ComponentStoreImpl.kt:434)
	at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:384)
	at com.intellij.configurationStore.ComponentStoreImpl.initPersistenceStateComponent(ComponentStoreImpl.kt:137)
	at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:101)
	... 48 more
Caused by: java.util.NoSuchElementException: List is empty.
	at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:206)
	at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:190)
	at com.intellij.serialization.BaseBeanBindingKt.createUsingKotlin(BaseBeanBinding.kt:49)
	at com.intellij.serialization.BaseBeanBindingKt.access$createUsingKotlin(BaseBeanBinding.kt:1)
	at com.intellij.serialization.BaseBeanBinding.newInstance(BaseBeanBinding.kt:34)
	at com.intellij.serialization.xml.KotlinAwareBeanBinding.newInstance(KotlinAwareBeanBinding.kt:75)
	at com.intellij.util.xmlb.BeanBinding.deserialize(BeanBinding.java:128)
	at com.intellij.util.xmlb.NotNullDeserializeBinding.deserializeUnsafe(NotNullDeserializeBinding.java:13)
	at com.intellij.util.xmlb.Binding.deserializeList(Binding.java:32)
	at com.intellij.util.xmlb.OptionTagBinding.deserialize(OptionTagBinding.java:107)
	at com.intellij.util.xmlb.BasePrimitiveBinding.deserializeUnsafe(BasePrimitiveBinding.java:54)
	at com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:225)
	at com.intellij.util.xmlb.BeanBinding.deserializeInto(BeanBinding.java:179)
	at com.intellij.util.xmlb.BeanBinding.deserialize(BeanBinding.java:129)
	at com.intellij.configurationStore.JdomSerializerImpl.deserialize(xmlSerializer.kt:90)
	... 56 more

Thank you for the report, Niraj! I have a few questions about the error so I can understand what's going on. Do you recall what you were doing when the error occurred? Can you reproduce the error? Did you recently update the plugin?

Hello @FWDekker!
Sorry for the delayed response. Yes, I think had updated PHPStorm / plugin and I restarted the IDE when I got that error. I haven't been able to reproduce it. Looks like it might have been the one time thing. If nobody else has reported it, we can close this issue.

Hi Niraj! Based on the exception log Randomness was unable to read your string settings. This can happen if my validation fails to catch an invalid input when it is saved, or if I introduce a breaking change in how I store settings in an update. If you recently updated Randomness, it's probably the latter, as you indicated. That also means that your string settings were reset to the default to prevent the same exception from occurring all the time.

Either way, thanks for the report. If someone else later reports the same thing this report may still turn out to be useful :) And if you see the error again, please don't hesitate to re-open this issue!