Why do I get 'Invalid superclass name' in WebControllerFactory when I attempt to create blank uifigure()?
Show older comments
The following error triggers about 100 times when I try to create a uifigure() in Matlab 2021b.
MathWorks::System::IUserException in WebControllerFactory::create(): [Error using matlab.ui.internal.componentframework.WebControllerFactory/checkPreconditions (line 45)
Invalid superclass name.
Error in matlab.ui.internal.componentframework.WebControllerFactory/create (line 92)
checkPreconditions( obj, component, parentController, nargin );]
Warning: Internal error creating figure controller.
Background:
I have code that modifies the DefaultFigureCreateFcn to keep track of when figures are created and destroyed. However, the above error will spam my command window at the beginning of a Matlab session when I attempt to execute my code. It only happens once per Matlab session. In order to reproduce it, I have to restart Matlab and run my code again. Running my code a second time during the same Matlab session does not reproduce the error.
Code Example:
set(0,'DefaultFigureCreateFcn','addlistener(gcf,''ObjectBeingDestroyed'',@(varargin) disp(1));')
hfig = uifigure()
Executing the above code during a fresh Matlab session will trigger the error about 100 times. If I rerun the code during the same session the error no longer occurs.
Any thoughts on why this is occurring? I did a little debugging and from what I can tell, the web controller is receiving a number of objects associated with a toolbar that are not of class web controller or component controller.
2 Comments
Walter Roberson
on 24 Aug 2022
Does it make a difference if you configure the default as an anonymous function instead of a character vector?
Bryce
on 24 Aug 2022
Answers (0)
Categories
Find more on Develop Apps Programmatically in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!