{
ControllerPortletInvocationContext context = (ControllerPortletInvocationContext)actionInvocation.getContext();
//
String windowId = context.getWindowId();
Portlet portlet = getPortlet(windowId);
//
actionInvocation.setClientContext(new AbstractClientContext(req));
actionInvocation.setServerContext(new AbstractServerContext(req, resp));
actionInvocation.setInstanceContext(new AbstractInstanceContext(portlet.getContext().getId()));
actionInvocation.setUserContext(new AbstractUserContext(req));
actionInvocation.setWindowContext(new AbstractWindowContext(windowId));
actionInvocation.setPortalContext(PORTAL_CONTEXT);
actionInvocation.setSecurityContext(new AbstractSecurityContext(req));
actionInvocation.setRequestContext(new AbstractRequestContext(req));
actionInvocation.setTarget(portlet.getContext());
//
return invoke((PortletInvocation)actionInvocation);
}