Program: 90552
Project: 90552
Buggy source:
/** 
 * Process action for the portlet associated with the given portlet window.
 * @param portletWindow  the portlet window.
 * @param request      the servlet request.
 * @param response     the servlet response.
 * @param isRedirect   Flag indicating whether redirect is to be performed. should be true for Action request and false for Ajax Action or  Partial Action requests.
 * @throws PortletException
 * @throws IOException
 * @throws PortletContainerException
 * @see javax.portlet.Portlet#processAction(ActionRequest,ActionResponse)
 */
public void doAction(PortletWindow portletWindow,HttpServletRequest request,HttpServletResponse response,boolean isRedirect) throws PortletException, IOException, PortletContainerException {
  ensureInitialized();
  debugWithName("String_Node_Str" + portletWindow.getPortletDefinition().getPortletName());
  PortletRequestContextService rcService=getContainerServices().getPortletRequestContextService();
  PortletEnvironmentService envService=getContainerServices().getPortletEnvironmentService();
  PortletInvokerService invoker=getContainerServices().getPortletInvokerService();
  PortletRequestContext requestContext=rcService.getPortletActionRequestContext(this,request,response,portletWindow);
  PortletActionResponseContext responseContext=rcService.getPortletActionResponseContext(this,request,response,portletWindow,requestContext);
  responseContext.setPropsAllowed(true);
  ActionRequest portletRequest=envService.createActionRequest(requestContext,responseContext);
  ActionResponse portletResponse=envService.createActionResponse(responseContext);
  FilterManager filterManager=filterInitialisation(portletWindow,PortletRequest.ACTION_PHASE);
  String location=null;
  String logtxt="String_Node_Str";
  if (!isRedirect) {
    logtxt="String_Node_Str";
  }
  try {
    invoker.action(requestContext,portletRequest,portletResponse,filterManager);
    debugWithName(logtxt + "String_Node_Str" + portletWindow.getPortletDefinition().getPortletName());
    responseContext.close();
    if (!responseContext.isRedirect()) {
      List<Event> events=responseContext.getEvents();
      if (!events.isEmpty()) {
        getContainerServices().getEventCoordinationService().processEvents(this,portletWindow,request,response,events);
      }
    }
    location=response.encodeRedirectURL(responseContext.getResponseURL());
  }
  finally {
    responseContext.release();
  }
  if (isRedirect) {
    redirect(request,response,location);
  }
  debugWithName(logtxt + "String_Node_Str" + portletWindow.getPortletDefinition().getPortletName());
}

Fixed version (ground truth):
/** 
 * Process action for the portlet associated with the given portlet window.
 * @param portletWindow  the portlet window.
 * @param request      the servlet request.
 * @param response     the servlet response.
 * @param isRedirect   Flag indicating whether redirect is to be performed. should be true for Action request and false for Ajax Action or  Partial Action requests.
 * @throws PortletException
 * @throws IOException
 * @throws PortletContainerException
 * @see javax.portlet.Portlet#processAction(ActionRequest,ActionResponse)
 */
public void doAction(PortletWindow portletWindow,HttpServletRequest request,HttpServletResponse response,boolean isRedirect) throws PortletException, IOException, PortletContainerException {
  ensureInitialized();
  debugWithName("String_Node_Str" + portletWindow.getPortletDefinition().getPortletName());
  PortletRequestContextService rcService=getContainerServices().getPortletRequestContextService();
  PortletEnvironmentService envService=getContainerServices().getPortletEnvironmentService();
  PortletInvokerService invoker=getContainerServices().getPortletInvokerService();
  PortletRequestContext requestContext=rcService.getPortletActionRequestContext(this,request,response,portletWindow);
  PortletActionResponseContext responseContext=rcService.getPortletActionResponseContext(this,request,response,portletWindow,requestContext);
  responseContext.setPropsAllowed(true);
  ActionRequest portletRequest=envService.createActionRequest(requestContext,responseContext);
  ActionResponse portletResponse=envService.createActionResponse(responseContext);
  FilterManager filterManager=filterInitialisation(portletWindow,PortletRequest.ACTION_PHASE);
  String location=null;
  String logtxt="String_Node_Str";
  if (!isRedirect) {
    logtxt="String_Node_Str";
  }
  try {
    invoker.action(requestContext,portletRequest,portletResponse,filterManager);
    debugWithName(logtxt + "String_Node_Str" + portletWindow.getPortletDefinition().getPortletName());
    responseContext.close();
    if (!responseContext.isRedirect()) {
      List<Event> events=responseContext.getEvents();
      if (!events.isEmpty()) {
        getContainerServices().getEventCoordinationService().processEvents(this,portletWindow,request,response,events);
      }
    }
  }
 catch (  Throwable t) {
    responseContext.reset();
    StringBuilder txt=new StringBuilder(128);
    txt.append("String_Node_Str");
    StringWriter sw=new StringWriter();
    PrintWriter pw=new PrintWriter(sw);
    t.printStackTrace(pw);
    pw.flush();
    txt.append(sw.toString());
    LOG.warn(txt.toString());
  }
 finally {
    location=response.encodeRedirectURL(responseContext.getResponseURL());
    responseContext.release();
  }
  if (isRedirect) {
    redirect(request,response,location);
  }
  debugWithName(logtxt + "String_Node_Str" + portletWindow.getPortletDefinition().getPortletName());
}