@Override
public PortletRenderResult doRender(IPortletWindowId portletWindowId, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Writer printWriter) {
final IPortletWindow portletWindow = this.portletWindowRegistry.getPortletWindow(httpServletRequest, portletWindowId);
//Load the parameters to provide with the request
final PortletUrl portletUrl = this.portletRequestParameterManager.getPortletRequestInfo(httpServletRequest, portletWindowId);
Map<String, List<String>> parameters;
//Current portlet isn't targeted, use parameters from previous request
if (portletUrl == null) {
parameters = portletWindow.getRequestParameters();
}
//Current portlet is targeted, set parameters and update state/mode
else {
parameters = portletUrl.getParameters();
if (parameters != null) {
portletWindow.setRequestParameters(parameters);
}
this.setupPortletWindow(httpServletRequest, portletWindow, portletUrl);