Am 28.11.2011 um 18:53 schrieb Igor Stasenko:
On 28 November 2011 17:44, Norbert Hartl <norbert@hartl.name> wrote:
Ok,
this is the behaviour with an image #13320 and the newest cog vm. I don't need to do anything because the NonInteractiveUIManager is set to default automatically regardless if -nodisplay or -headless is specified. And in my case this is broken. However if I hack away the noninteractive stuff by doing
UIManager default: (UIManager default instVarAt: 1).
than it works. A debugger pops up in the image and can see the real exception with VNC. So to me it seems that there is something broken. Igor, can you add anything. I think Marcus is not available at the moment.
a non-interactive manager takes ownership when you either: - run image with -headless param - during image startup (StartupUIManager).
the default behavior of it, when any interaction with user is requested, it signals ErrorNonInteractive error, and default action for this error is to print stack trace to log file and leave to OS. signaling any other unhandled error leading to opening a debugger window, which is considered a user interaction request, and consequently bails out to OS as well by signaling ErrorNonInteractive.
if you run headless and don't want to use this manager, you can disable it, just by setting a morphic ui manager:
UIManager default: MorphicUIManager new.
Yes, that's the same as what I did with restoring the original manager. Using the non-interactive manager does not output the stack trace of the exception that occured but the exception that is triggered because openDebuggerOn:context:label:contents:fullView: is not implemented in NonInteractiveUIManager. And even if I impement the method with ^ self nonInteractive I don't get the exception that originally ocurred. So you cannot see the exception that caused the image to exit. Shouldn't that be different? Norbert