I did this:
set logoutScript=ashq print( "Goodbye!" )
With your change (reversion), I hit command-Q, which invoked the Quit menu item. LogoutManager made the Login Frame (I assume; it was the right size and was centered in my screen, but it was completely blank) visible. No status messages were displayed in the blank frame. When it came to my logout script, I got this stack trace:
Code:
Pause object in event dispatch thread
class java.lang.Exception: Pause object in event dispatch thread
java.lang.Exception: Pause object in event dispatch thread
at net.sourceforge.kolmafia.StaticEntity.printStackTrace(StaticEntity.java:380)
at net.sourceforge.kolmafia.utilities.PauseObject.pause(PauseObject.java:78)
at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:444)
at net.sourceforge.kolmafia.textui.Interpreter.executeScope(Interpreter.java:335)
at net.sourceforge.kolmafia.textui.Interpreter.execute(Interpreter.java:283)
at net.sourceforge.kolmafia.textui.Interpreter.execute(Interpreter.java:276)
at net.sourceforge.kolmafia.textui.command.AshSingleLineCommand.run(AshSingleLineCommand.java:67)
at net.sourceforge.kolmafia.KoLmafiaCLI.doExecuteCommand(KoLmafiaCLI.java:535)
at net.sourceforge.kolmafia.KoLmafiaCLI.executeCommand(KoLmafiaCLI.java:489)
at net.sourceforge.kolmafia.KoLmafiaCLI.executeLine(KoLmafiaCLI.java:395)
at net.sourceforge.kolmafia.session.LogoutManager.logout(LogoutManager.java:103)
at net.sourceforge.kolmafia.KoLmafia.quit(KoLmafia.java:2343)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at apple.dts.samplecode.osxadapter.OSXAdapter.callTarget(OSXAdapter.java:167)
at apple.dts.samplecode.osxadapter.OSXAdapter.invoke(OSXAdapter.java:178)
at $Proxy0.handleQuit(Unknown Source)
at com.apple.eawt._AppEventLegacyHandler$7.dispatchEvent(_AppEventLegacyHandler.java:146)
at com.apple.eawt._AppEventLegacyHandler.sendEventToEachListenerUntilHandled(_AppEventLegacyHandler.java:168)
at com.apple.eawt._AppEventLegacyHandler.handleQuitRequestWith(_AppEventLegacyHandler.java:144)
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(_AppEventHandler.java:387)
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(_AppEventHandler.java:380)
at com.apple.eawt._AppEventHandler$_AppEventDispatcher$1.run(_AppEventHandler.java:489)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:677)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:647)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Pause object in event dispatch thread
And then, when LogoutManager actually submitted the LogoutRequest, I got the stack trace I gave above:
Code:
Runnable in event dispatch thread
class java.lang.Exception: Runnable in event dispatch thread
java.lang.Exception: Runnable in event dispatch thread
at net.sourceforge.kolmafia.StaticEntity.printStackTrace(StaticEntity.java:380)
at net.sourceforge.kolmafia.RequestThread.postRequest(RequestThread.java:216)
at net.sourceforge.kolmafia.RequestThread.postRequest(RequestThread.java:182)
at net.sourceforge.kolmafia.session.LogoutManager.logout(LogoutManager.java:122)
at net.sourceforge.kolmafia.KoLmafia.quit(KoLmafia.java:2343)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at apple.dts.samplecode.osxadapter.OSXAdapter.callTarget(OSXAdapter.java:167)
at apple.dts.samplecode.osxadapter.OSXAdapter.invoke(OSXAdapter.java:178)
at $Proxy0.handleQuit(Unknown Source)
at com.apple.eawt._AppEventLegacyHandler$7.dispatchEvent(_AppEventLegacyHandler.java:146)
at com.apple.eawt._AppEventLegacyHandler.sendEventToEachListenerUntilHandled(_AppEventLegacyHandler.java:168)
at com.apple.eawt._AppEventLegacyHandler.handleQuitRequestWith(_AppEventLegacyHandler.java:144)
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(_AppEventHandler.java:387)
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performUsing(_AppEventHandler.java:380)
at com.apple.eawt._AppEventHandler$_AppEventDispatcher$1.run(_AppEventHandler.java:489)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:677)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:647)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Runnable in event dispatch thread
I find this unsatisfying, but I throw up my hands and will leave it to you to look at eventually.