FWDekker / intellij-randomness

IntelliJ plugin for inserting random numbers, UUIDs, names, IP addresses, and much more
https://plugins.jetbrains.com/plugin/9836-randomness
MIT License
45 stars 7 forks source link

"No displayName is specified for configurable: com.fwdekker.randomness.integer.IntegerSettingsConfigurable" #459

Closed ForNeVeR closed 1 year ago

ForNeVeR commented 1 year ago

Hi! I work for the Rider team, and some Rider users have started reporting a particular exception thrown from the platform code.

The plugin reports the following issue in Rider 2023.2 EAP 5:

java.lang.Throwable: No displayName is specified for configurable: com.fwdekker.randomness.integer.IntegerSettingsConfigurable
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:370)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.getDisplayName(ConfigurableWrapper.java:158)
    at com.intellij.ide.util.gotoByName.GotoActionModel.lambda$new$0(GotoActionModel.java:78)
    at com.intellij.openapi.util.NotNullLazyValue$4.compute(NotNullLazyValue.java:120)
    at com.intellij.openapi.util.NotNullLazyValue$4.getValue(NotNullLazyValue.java:105)
    at com.intellij.ide.util.gotoByName.GotoActionModel.getConfigurablesNames(GotoActionModel.java:364)
    at com.intellij.ide.util.gotoByName.GotoActionItemProvider.processOptions(GotoActionItemProvider.java:148)
    at com.intellij.ide.util.gotoByName.GotoActionItemProvider.filterElements(GotoActionItemProvider.java:94)
    at com.intellij.ide.actions.searcheverywhere.ActionSearchEverywhereContributor.lambda$fetchWeightedElements$4(ActionSearchEverywhereContributor.java:137)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:603)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:678)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:634)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:602)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
    at com.intellij.ide.actions.searcheverywhere.ActionSearchEverywhereContributor.fetchWeightedElements(ActionSearchEverywhereContributor.java:136)
    at com.intellij.ide.actions.searcheverywhere.MixedResultsSearcher$ContributorSearchTask.run(MixedResultsSearcher.java:184)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:218)
    at com.intellij.util.ConcurrencyUtil.lambda$underThreadNameRunnable$3(ConcurrencyUtil.java:206)
    at com.intellij.codeWithMe.ClientId$Companion.decorateRunnable$lambda$4(ClientId.kt:304)
    at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:274)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
    at java.base/java.lang.Thread.run(Thread.java:833)

I believe that this may also be the reason for why the plugin settings page may not have the right name in the UI (IntelliJ will fall back to showing the .toString() in such case).

Please make sure to update the configurable registration in the plugin.xml: the latest IntelliJ DevKit should help with that. You are supposed to add bundle="…" and key="…" attributes in the <{application|project}Configurable>, for IntelliJ to know the settings' page name without loading the class.

FWDekker commented 1 year ago

Thank you for reporting the issue! I expect to have some time to look into this in the coming days.

FWDekker commented 1 year ago

The issue has been resolved as of v2.7.7, which will be available in your IDE in a few days after JetBrains has conducted some final checks. If you cannot wait until then, the release can also be downloaded from GitHub.

Let me know if you encounter any further problems!