Which disposable to use for a component validator in a settings window?

Answered

I am validating my JBTextFields in my plugin settings component using the component validation described here.

However, it does not seem right to use the project as parent disposable when reading the disposer documentation here. But I am unsure which parent disposable to use in this case. The validators are only required as long as the settings window is open, but I am not sure which disposable corresponds to the settings window.

I am grateful for any suggestions.

 

1
16 comments

If you inherit from com.intellij.openapi.options.SettingsEditor, you can pass thisinstead.

1

Sehr gut! It seems there are known problems with KotlinCompilerConfigurableTab https://youtrack.jetbrains.com/issues?q=KotlinCompilerConfigurableTab so please ignore it.

1

Thanks, I changed it!

0

What is the proper parentDisposable for a SettingsEditor? Currently, I did not register it, and a memory leak is detected during the build.

0

Sorry for delay. What exactly is the problem/stacktrace?

0
Here is the stack trace:
2022-11-03 21:55:53,608 [  19582] SEVERE - #c.i.o.u.ObjectTree - Memory leak detected: 'no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsComponent@5734cfe8' of class no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsComponent is registered in Disposer but wasn't disposed.
Register it with a proper parentDisposable or ensure that it's always disposed by direct Disposer.dispose call.
See https://jetbrains.org/intellij/sdk/docs/basics/disposers.html for more details.
The corresponding Disposer.register() stacktrace is shown as the cause:

java.lang.RuntimeException: Memory leak detected: 'no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsComponent@5734cfe8' of class no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsComponent is registered in Disposer but wasn't disposed.
Register it with a proper parentDisposable or ensure that it's always disposed by direct Disposer.dispose call.
See https://jetbrains.org/intellij/sdk/docs/basics/disposers.html for more details.
The corresponding Disposer.register() stacktrace is shown as the cause:

    at com.intellij.openapi.util.ObjectNode.assertNoChildren(ObjectNode.java:41)
    at com.intellij.openapi.util.ObjectTree.assertIsEmpty(ObjectTree.java:210)
    at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:232)
    at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:227)
    at com.intellij.openapi.application.impl.ApplicationImpl.disposeContainer(ApplicationImpl.java:230)
    at com.intellij.openapi.application.impl.ApplicationImpl.disposeSelf(ApplicationImpl.java:247)
    at com.intellij.openapi.application.impl.ApplicationImpl.doExit(ApplicationImpl.java:676)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$exit$7(ApplicationImpl.java:632)
    at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
    at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
    at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
    at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:513)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:75)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:118)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
    at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.Throwable
Caused by: java.lang.Throwable

    at com.intellij.openapi.util.ObjectNode.<init>(ObjectNode.java:24)
    at com.intellij.openapi.util.ObjectNode.findOrCreateChildNode(ObjectNode.java:165)
    at com.intellij.openapi.util.ObjectTree.register(ObjectTree.java:51)
    at com.intellij.openapi.util.Disposer.register(Disposer.java:117)
    at com.intellij.openapi.options.SettingsEditor.<init>(SettingsEditor.java:43)
    at com.intellij.openapi.options.SettingsEditor.<init>(SettingsEditor.java:38)
    at no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsComponent.<init>(VisualDebuggerSettingsComponent.java:19)
    at no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsConfigurable.createComponent(VisualDebuggerSettingsConfigurable.java:26)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.createComponent(ConfigurableWrapper.java:169)
    at com.intellij.ide.ui.search.SearchUtil.processConfigurables(SearchUtil.java:72)
    at com.intellij.ide.ui.search.TraverseUIStarter.lambda$startup$0(TraverseUIStarter.java:118)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308)
    ... 22 more
0

VisualDebuggerSettingsConfigurable should implement Disposable, then pass its instance (`this`) to VisualDebuggerSettingsComponent.addInputFieldValidator() into CTOR of ComponentValidator.

0

But when is the VisualDebuggerSettingsConfigurable registered for disposal?
I still get a similar stack trace after the changes:


The corresponding Disposer.register() stacktrace is shown as the cause:

java.lang.RuntimeException: Memory leak detected: 'no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsConfigurable@43da370c' of class no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsConfigurable is registered in Disposer but wasn't disposed.
Register it with a proper parentDisposable or ensure that it's always disposed by direct Disposer.dispose call.
See https://jetbrains.org/intellij/sdk/docs/basics/disposers.html for more details.
The corresponding Disposer.register() stacktrace is shown as the cause:

    at com.intellij.openapi.util.ObjectNode.assertNoChildren(ObjectNode.java:41)
    at com.intellij.openapi.util.ObjectTree.assertIsEmpty(ObjectTree.java:210)
    at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:232)
    at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:227)
    at com.intellij.openapi.application.impl.ApplicationImpl.disposeContainer(ApplicationImpl.java:230)
    at com.intellij.openapi.application.impl.ApplicationImpl.disposeSelf(ApplicationImpl.java:247)
    at com.intellij.openapi.application.impl.ApplicationImpl.doExit(ApplicationImpl.java:676)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$exit$7(ApplicationImpl.java:632)
    at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
    at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
    at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
    at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:513)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:75)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:118)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
    at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.Throwable
    at com.intellij.openapi.util.ObjectNode.<init>(ObjectNode.java:24)
Caused by: java.lang.Throwable

    at com.intellij.openapi.util.ObjectNode.findOrCreateChildNode(ObjectNode.java:165)
    at com.intellij.openapi.util.ObjectTree.register(ObjectTree.java:51)
    at com.intellij.openapi.util.Disposer.register(Disposer.java:117)
    at com.intellij.openapi.ui.ComponentValidator.installOn(ComponentValidator.java:155)
    at no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsComponent.addInputFieldValidators(VisualDebuggerSettingsComponent.java:41)
    at no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsComponent.<init>(VisualDebuggerSettingsComponent.java:37)
    at no.hvl.tk.visual.debugger.settings.VisualDebuggerSettingsConfigurable.createComponent(VisualDebuggerSettingsConfigurable.java:30)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.createComponent(ConfigurableWrapper.java:169)
    at com.intellij.ide.ui.search.SearchUtil.processConfigurables(SearchUtil.java:72)
    at com.intellij.ide.ui.search.TraverseUIStarter.lambda$startup$0(TraverseUIStarter.java:118)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308)
    ... 22 more
0

Sorry for delay, will try to check ASAP again

0

Sorry I will check next week.

0

Thanks for the answer. That seems to work for the memory leak in my plugin. The error during the build is gone. However, there is an error during runtime (runIde gradle task).

It seems that my code is causing a memory leak in the KotlinCompilerConfigurableTab. This only happens when I click on the action in my debugging tab but not when I open the settings normally (Stacktrace appears after closing the IDE run from the installed IDE). It is quite weird since I am using the same implementation, but there is no memory leak in my configurable. Maybe you have an idea? Otherwise, I will ignore it.

ShowSettingsUtil.getInstance().showSettingsDialog(project, VisualDebuggerSettingsConfigurable.class);

Memory leak stack trace:

2023-11-01 09:26:51,991 [  71206] SEVERE - #c.i.o.u.ObjectTree - Memory leak detected: 'org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab@46cd59a9' (class org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab) was registered in Disposer as a child of 'ROOT_DISPOSABLE' (class com.intellij.openapi.util.Disposer$2) but wasn't disposed.
Register it with a proper parentDisposable or ensure that it's always disposed by direct Disposer.dispose call.
See https://jetbrains.org/intellij/sdk/docs/basics/disposers.html for more details.
The corresponding Disposer.register() stacktrace is shown as the cause:

java.lang.RuntimeException: Memory leak detected: 'org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab@46cd59a9' (class org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab) was registered in Disposer as a child of 'ROOT_DISPOSABLE' (class com.intellij.openapi.util.Disposer$2) but wasn't disposed.
Register it with a proper parentDisposable or ensure that it's always disposed by direct Disposer.dispose call.
See https://jetbrains.org/intellij/sdk/docs/basics/disposers.html for more details.
The corresponding Disposer.register() stacktrace is shown as the cause:

	at com.intellij.openapi.util.ObjectNode.assertNoChildren(ObjectNode.java:45)
	at com.intellij.openapi.util.ObjectTree.assertIsEmpty(ObjectTree.java:218)
	at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:278)
	at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:272)
	at com.intellij.openapi.application.impl.ApplicationImpl.disposeContainer(ApplicationImpl.java:223)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$doExit$5(ApplicationImpl.java:660)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.computeWithSpanIgnoreThrows(trace.kt:73)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.computeWithSpanThrows(TraceUtil.java:18)
	at com.intellij.openapi.application.impl.ApplicationImpl.doExit(ApplicationImpl.java:646)
	at com.intellij.openapi.application.impl.ApplicationImpl.exit(ApplicationImpl.java:595)
	at com.intellij.openapi.application.impl.ApplicationImpl.exit(ApplicationImpl.java:584)
	at com.intellij.openapi.application.ex.ApplicationEx.exit(ApplicationEx.java:77)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.quitApp(CloseProjectWindowHelper.kt:67)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing(CloseProjectWindowHelper.kt:47)
	at com.intellij.openapi.wm.impl.ProjectFrameHelper.windowClosing(ProjectFrameHelper.kt:439)
	at com.intellij.openapi.wm.impl.WindowCloseListener.windowClosing(ProjectFrameHelper.kt:459)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
	at java.desktop/java.awt.Window.processWindowEvent(Window.java:2113)
	at java.desktop/javax.swing.JFrame.processWindowEvent(JFrame.java:298)
	at java.desktop/java.awt.Window.processEvent(Window.java:2072)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2808)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:791)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:740)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:734)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:764)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:762)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:685)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:589)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:67)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:369)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:368)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:368)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:363)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:992)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:992)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:363)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:405)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.Throwable
	at com.intellij.openapi.util.ObjectNode.<init>(ObjectNode.java:24)
	at com.intellij.openapi.util.ObjectNode.findOrCreateChildNode(ObjectNode.java:140)
Caused by: java.lang.Throwable

	at com.intellij.openapi.util.ObjectTree.register(ObjectTree.java:51)
	at com.intellij.openapi.util.Disposer.register(Disposer.java:161)
	at com.intellij.openapi.ui.ComponentValidator.installOn(ComponentValidator.java:155)
	at org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab.createVersionValidator(KotlinCompilerConfigurableTab.java:904)
	at org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab.createUIComponents(KotlinCompilerConfigurableTab.java:878)
	at org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab.$$$setupUI$$$(KotlinCompilerConfigurableTab.java)
	at org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab.<init>(KotlinCompilerConfigurableTab.java:142)
	at org.jetbrains.kotlin.idea.base.compilerPreferences.configuration.KotlinCompilerConfigurableTab.<init>(KotlinCompilerConfigurableTab.java:191)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at com.intellij.serviceContainer.ComponentManagerImpl.doInstantiateClass(ComponentManagerImpl.kt:976)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:954)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:1022)
	at com.intellij.openapi.options.ConfigurableEP$ClassProducer.createElement(ConfigurableEP.java:429)
	at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:338)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:39)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:116)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:95)
	at com.intellij.ide.actions.ShowSettingsUtilImpl$showSettingsDialog$3.invoke(ShowSettingsUtilImpl.kt:116)
	at com.intellij.ide.actions.ShowSettingsUtilImpl$showSettingsDialog$3.invoke(ShowSettingsUtilImpl.kt:116)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog$lambda$2(ShowSettingsUtilImpl.kt:116)
	at com.intellij.ide.actions.ShowSettingsUtilImpl$showSettingsDialog$config$1.accept(ShowSettingsUtilImpl.kt:130)
	at com.intellij.openapi.options.ex.ConfigurableVisitor.test(ConfigurableVisitor.java:23)
	at com.intellij.openapi.options.ex.ConfigurableVisitor.test(ConfigurableVisitor.java:18)
	at com.intellij.openapi.options.ex.ConfigurableVisitor.find(ConfigurableVisitor.java:57)
	at com.intellij.openapi.options.ex.ConfigurableVisitor.find(ConfigurableVisitor.java:64)
	at com.intellij.openapi.options.ex.ConfigurableVisitor.find(ConfigurableVisitor.java:64)
	at com.intellij.openapi.options.ex.ConfigurableVisitor.find(ConfigurableVisitor.java:46)
	at com.intellij.openapi.options.ex.ConfigurableVisitor.find(ConfigurableVisitor.java:30)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.kt:132)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.kt:116)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.kt:109)
	at no.hvl.tk.visual.debugger.actions.settings.SettingsAction.actionPerformed(SettingsAction.java:16)
	at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:227)
	at com.intellij.openapi.actionSystem.impl.ActionButton.lambda$performAction$2(ActionButton.java:206)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:362)
	at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:206)
	at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:520)
	at java.desktop/java.awt.Component.processEvent(Component.java:6422)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4954)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4581)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4522)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2808)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:791)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:740)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:734)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:764)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:762)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:685)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:633)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:588)
	... 18 more
2023-11-01 09:26:51,998 [  71213] SEVERE - #c.i.o.u.ObjectTree - IntelliJ IDEA 2023.2  Build #IC-232.8660.185
2023-11-01 09:26:51,998 [  71213] SEVERE - #c.i.o.u.ObjectTree - JDK: 17.0.7; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2023-11-01 09:26:51,998 [  71213] SEVERE - #c.i.o.u.ObjectTree - OS: Windows 10
2023-11-01 09:26:51,999 [  71214] SEVERE - #c.i.o.u.ObjectTree - Plugin to blame: Visual Debugger version: 1.9.7
0

Please sign in to leave a comment.