I think JSR168/286 define that the WindowState change won't be propagated until the subsequent RenderRequest (after your ActionRequest).
The setWindowState method allows a portlet to change its current window state. The new window state will be effective in the following processEvent and render requests.
I simply do a return from my processAction and then, (according to the spec), in the subsequent doView call renderRequest.getWindowState() should return WindowState.MINIMIZED, but it also returns WindowState.NORMAL, so then the bug lies here?
What does work is if you call actionResponse.setWindowState(WindowState.MINIMIZED) in processAction, in this case the doView is not called at all, and the portlet is indeed minimized.
But if this is how it is supposed to work I really need a way to check the incomming actionRequest for the windowstate parameter.
if (actionRequest.getWindowState() == WindowState.MINIMIZED) actionResponse.setWindowState(WindowState.MINIMIZED)
But as stated before this does not work.
To me there is definitely a bug somewhere.