Is there a special reason for the 'handleCommandMessage()' in TextEditor to be private? It seems that's the only Component for which it's private, and that's making my life difficult at the moment.
It's private so that people can't overload it and forget to call the base-class's method from their overloaded method, which would break the base class.
I wouldn't fix this by just making it public - the correct fix would be for me to not use that mechanism at all in the TextEditor class, and change it internally so that it just avoids that method altogether.
And TBH there are lots of other, better, ways to invoke something asynchronously than using the command message stuff. Try a CallbackMessage or MessageManager::callAsync instead.