Program: 24
Project: 24
Buggy source:
public ActionForward execute(XWikiContext context) throws Exception {
  MonitorPlugin monitor=null;
  FileUploadPlugin fileupload=null;
  String docName="String_Node_Str";
  try {
    String action=context.getAction();
    XWiki xwiki;
    try {
      xwiki=XWiki.getXWiki(this.waitForXWikiInitialization,context);
      if (xwiki == null) {
        renderInit(context);
        return null;
      }
    }
 catch (    XWikiException e) {
      if (e.getCode() == XWikiException.ERROR_XWIKI_DOES_NOT_EXIST) {
        xwiki=XWiki.getMainXWiki(context);
        XWikiURLFactory urlf=xwiki.getURLFactoryService().createURLFactory(context.getMode(),context);
        context.setURLFactory(urlf);
        VelocityManager velocityManager=Utils.getComponent(VelocityManager.class);
        VelocityContext vcontext=velocityManager.getVelocityContext();
        if (!sendGlobalRedirect(context.getResponse(),context.getURL().toString(),context)) {
          if (!StringUtils.isEmpty(context.getWiki().Param("String_Node_Str"))) {
            LOGGER.warn(String.format("String_Node_Str","String_Node_Str","String_Node_Str"));
          }
          if (!ACTIONS_IGNORED_WHEN_WIKI_DOES_NOT_EXIST.contains(action)) {
            xwiki.prepareResources(context);
            EntityReferenceValueProvider valueProvider=Utils.getComponent(EntityReferenceValueProvider.class);
            xwiki.setPhonyDocument(new DocumentReference(valueProvider.getDefaultValue(EntityType.WIKI),valueProvider.getDefaultValue(EntityType.SPACE),valueProvider.getDefaultValue(EntityType.DOCUMENT)),context,vcontext);
            Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
            return null;
          }
        }
 else {
          return null;
        }
      }
 else {
        LOGGER.error("String_Node_Str",e);
        throw e;
      }
    }
    if (sendGlobalRedirect(context.getResponse(),context.getURL().toString(),context)) {
      return null;
    }
    XWikiURLFactory urlf=xwiki.getURLFactoryService().createURLFactory(context.getMode(),context);
    context.setURLFactory(urlf);
    String sajax=context.getRequest().get("String_Node_Str");
    boolean ajax=false;
    if (sajax != null && !sajax.trim().equals("String_Node_Str") && !sajax.equals("String_Node_Str")) {
      ajax=true;
    }
    context.put("String_Node_Str",ajax);
    if (monitor != null) {
      monitor.startTimer("String_Node_Str");
    }
    VelocityManager velocityManager=Utils.getComponent(VelocityManager.class);
    VelocityContext vcontext=velocityManager.getVelocityContext();
    boolean eventSent=false;
    try {
      if (!xwiki.prepareDocuments(context.getRequest(),context,vcontext)) {
        return null;
      }
      monitor=(MonitorPlugin)xwiki.getPlugin("String_Node_Str",context);
      if (monitor != null) {
        monitor.startRequest("String_Node_Str",context.getAction(),context.getURL());
        monitor.startTimer("String_Node_Str");
      }
      fileupload=Utils.handleMultipart(context.getRequest().getHttpServletRequest(),context);
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
      }
      if (monitor != null) {
        monitor.setWikiPage(context.getDoc().getFullName());
      }
      if (monitor != null) {
        monitor.startTimer("String_Node_Str");
      }
      try {
        ObservationManager om=Utils.getComponent(ObservationManager.class);
        ActionExecutingEvent event=new ActionExecutingEvent(context.getAction());
        om.notify(event,context.getDoc(),context);
        eventSent=true;
        if (event.isCanceled()) {
          return null;
        }
      }
 catch (      Throwable ex) {
        LOGGER.error("String_Node_Str" + context.getDoc() + "String_Node_Str"+ context.getAction()+ "String_Node_Str",ex);
      }
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
      }
      try {
        ActionManager actionManager=Utils.getComponent(ActionManager.class);
        Resource resource=Utils.getComponent(ResourceManager.class).getResource();
        if (actionManager.execute(resource)) {
          return null;
        }
      }
 catch (      Throwable e) {
        LOGGER.error("String_Node_Str" + context.getAction() + "String_Node_Str",e);
      }
      String renderResult=null;
      XWikiDocument doc=context.getDoc();
      docName=doc.getFullName();
      if (action(context)) {
        renderResult=render(context);
      }
      if (renderResult != null) {
        if (doc.isNew() && "String_Node_Str".equals(context.getAction()) && !"String_Node_Str".equals(context.getRequest().get("String_Node_Str"))) {
          String page=Utils.getPage(context.getRequest(),"String_Node_Str");
          Utils.parseTemplate(page,context);
        }
 else {
          String page=Utils.getPage(context.getRequest(),renderResult);
          Utils.parseTemplate(page,!page.equals("String_Node_Str"),context);
        }
      }
      return null;
    }
 catch (    Throwable e) {
      if (e instanceof IOException) {
        e=new XWikiException(XWikiException.MODULE_XWIKI_APP,XWikiException.ERROR_XWIKI_APP_SEND_RESPONSE_EXCEPTION,"String_Node_Str",e);
      }
      if (!(e instanceof XWikiException)) {
        e=new XWikiException(XWikiException.MODULE_XWIKI_APP,XWikiException.ERROR_XWIKI_UNKNOWN,"String_Node_Str",e);
      }
      try {
        XWikiException xex=(XWikiException)e;
        if (xex.getCode() == XWikiException.ERROR_XWIKI_APP_SEND_RESPONSE_EXCEPTION) {
          LOGGER.debug("String_Node_Str",e);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_ACCESS_DENIED) {
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_USER_INACTIVE) {
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_APP_ATTACHMENT_NOT_FOUND) {
          context.put("String_Node_Str","String_Node_Str");
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_APP_URL_EXCEPTION) {
          vcontext.put("String_Node_Str",context.getMessageTool().get("String_Node_Str"));
          xwiki.setPhonyDocument(xwiki.getDefaultSpace(context) + "String_Node_Str" + xwiki.getDefaultPage(context),context,vcontext);
          context.getResponse().setStatus(HttpServletResponse.SC_BAD_REQUEST);
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
        vcontext.put("String_Node_Str",e);
        if (LOGGER.isWarnEnabled()) {
          if (ExceptionUtils.getRootCauseMessage(e).equals("String_Node_Str")) {
            return null;
          }
          LOGGER.warn("String_Node_Str" + e.getMessage(),e);
        }
        String exceptionTemplate=ajax ? "String_Node_Str" : "String_Node_Str";
        Utils.parseTemplate(Utils.getPage(context.getRequest(),exceptionTemplate),context);
        return null;
      }
 catch (      XWikiException ex) {
        if (ex.getCode() == XWikiException.ERROR_XWIKI_APP_SEND_RESPONSE_EXCEPTION) {
          LOGGER.error("String_Node_Str");
        }
      }
catch (      Exception e2) {
        LOGGER.error("String_Node_Str",e);
        LOGGER.error("String_Node_Str",e2);
      }
      return null;
    }
 finally {
      try {
        context.getResponse().getWriter().flush();
      }
 catch (      Throwable e) {
      }
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
        monitor.startTimer("String_Node_Str");
      }
      if (eventSent) {
        try {
          ObservationManager om=Utils.getComponent(ObservationManager.class);
          om.notify(new ActionExecutedEvent(context.getAction()),context.getDoc(),context);
        }
 catch (        Throwable ex) {
          LOGGER.error("String_Node_Str" + docName + "String_Node_Str"+ context.getAction()+ "String_Node_Str",ex);
        }
      }
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
      }
      if ((context != null) && (xwiki != null)) {
        xwiki.getStore().cleanUp(context);
      }
    }
  }
  finally {
    if (monitor != null) {
      monitor.endRequest();
    }
    if (context != null) {
      if (fileupload != null) {
        fileupload.cleanFileList(context);
      }
    }
  }
}

Fixed version (ground truth):
public ActionForward execute(XWikiContext context) throws Exception {
  MonitorPlugin monitor=null;
  FileUploadPlugin fileupload=null;
  String docName="String_Node_Str";
  try {
    String action=context.getAction();
    XWiki xwiki;
    try {
      xwiki=XWiki.getXWiki(this.waitForXWikiInitialization,context);
      if (xwiki == null) {
        renderInit(context);
        return null;
      }
    }
 catch (    XWikiException e) {
      if (e.getCode() == XWikiException.ERROR_XWIKI_DOES_NOT_EXIST) {
        xwiki=XWiki.getMainXWiki(context);
        XWikiURLFactory urlf=xwiki.getURLFactoryService().createURLFactory(context.getMode(),context);
        context.setURLFactory(urlf);
        VelocityManager velocityManager=Utils.getComponent(VelocityManager.class);
        VelocityContext vcontext=velocityManager.getVelocityContext();
        if (!sendGlobalRedirect(context.getResponse(),context.getURL().toString(),context)) {
          if (!StringUtils.isEmpty(context.getWiki().Param("String_Node_Str"))) {
            LOGGER.warn(String.format("String_Node_Str","String_Node_Str","String_Node_Str"));
          }
          if (!ACTIONS_IGNORED_WHEN_WIKI_DOES_NOT_EXIST.contains(action)) {
            xwiki.prepareResources(context);
            EntityReferenceValueProvider valueProvider=Utils.getComponent(EntityReferenceValueProvider.class);
            xwiki.setPhonyDocument(new DocumentReference(valueProvider.getDefaultValue(EntityType.WIKI),valueProvider.getDefaultValue(EntityType.SPACE),valueProvider.getDefaultValue(EntityType.DOCUMENT)),context,vcontext);
            Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
            return null;
          }
        }
 else {
          return null;
        }
      }
 else {
        LOGGER.error("String_Node_Str",e);
        throw e;
      }
    }
    if (sendGlobalRedirect(context.getResponse(),context.getURL().toString(),context)) {
      return null;
    }
    XWikiURLFactory urlf=xwiki.getURLFactoryService().createURLFactory(context.getMode(),context);
    context.setURLFactory(urlf);
    String sajax=context.getRequest().get("String_Node_Str");
    boolean ajax=false;
    if (sajax != null && !sajax.trim().equals("String_Node_Str") && !sajax.equals("String_Node_Str")) {
      ajax=true;
    }
    context.put("String_Node_Str",ajax);
    if (monitor != null) {
      monitor.startTimer("String_Node_Str");
    }
    VelocityManager velocityManager=Utils.getComponent(VelocityManager.class);
    VelocityContext vcontext=velocityManager.getVelocityContext();
    boolean eventSent=false;
    try {
      if (!xwiki.prepareDocuments(context.getRequest(),context,vcontext)) {
        return null;
      }
      monitor=(MonitorPlugin)xwiki.getPlugin("String_Node_Str",context);
      if (monitor != null) {
        monitor.startRequest("String_Node_Str",context.getAction(),context.getURL());
        monitor.startTimer("String_Node_Str");
      }
      fileupload=Utils.handleMultipart(context.getRequest().getHttpServletRequest(),context);
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
      }
      if (monitor != null) {
        monitor.setWikiPage(context.getDoc().getFullName());
      }
      if (monitor != null) {
        monitor.startTimer("String_Node_Str");
      }
      try {
        ObservationManager om=Utils.getComponent(ObservationManager.class);
        ActionExecutingEvent event=new ActionExecutingEvent(context.getAction());
        om.notify(event,context.getDoc(),context);
        eventSent=true;
        if (event.isCanceled()) {
          return null;
        }
      }
 catch (      Throwable ex) {
        LOGGER.error("String_Node_Str" + context.getDoc() + "String_Node_Str"+ context.getAction()+ "String_Node_Str",ex);
      }
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
      }
      try {
        ActionManager actionManager=Utils.getComponent(ActionManager.class);
        Resource resource=Utils.getComponent(ResourceManager.class).getResource();
        if (actionManager.execute(resource)) {
          return null;
        }
      }
 catch (      Throwable e) {
        LOGGER.error("String_Node_Str",context.getAction(),e);
      }
      String renderResult=null;
      XWikiDocument doc=context.getDoc();
      docName=doc.getFullName();
      if (action(context)) {
        renderResult=render(context);
      }
      if (renderResult != null) {
        if (doc.isNew() && "String_Node_Str".equals(context.getAction()) && !"String_Node_Str".equals(context.getRequest().get("String_Node_Str"))) {
          String page=Utils.getPage(context.getRequest(),"String_Node_Str");
          Utils.parseTemplate(page,context);
        }
 else {
          String page=Utils.getPage(context.getRequest(),renderResult);
          Utils.parseTemplate(page,!page.equals("String_Node_Str"),context);
        }
      }
      return null;
    }
 catch (    Throwable e) {
      if (e instanceof IOException) {
        e=new XWikiException(XWikiException.MODULE_XWIKI_APP,XWikiException.ERROR_XWIKI_APP_SEND_RESPONSE_EXCEPTION,"String_Node_Str",e);
      }
      if (!(e instanceof XWikiException)) {
        e=new XWikiException(XWikiException.MODULE_XWIKI_APP,XWikiException.ERROR_XWIKI_UNKNOWN,"String_Node_Str",e);
      }
      try {
        XWikiException xex=(XWikiException)e;
        if (xex.getCode() == XWikiException.ERROR_XWIKI_APP_SEND_RESPONSE_EXCEPTION) {
          LOGGER.debug("String_Node_Str",e);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_ACCESS_DENIED) {
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_USER_INACTIVE) {
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_APP_ATTACHMENT_NOT_FOUND) {
          context.put("String_Node_Str","String_Node_Str");
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
 else         if (xex.getCode() == XWikiException.ERROR_XWIKI_APP_URL_EXCEPTION) {
          vcontext.put("String_Node_Str",context.getMessageTool().get("String_Node_Str"));
          xwiki.setPhonyDocument(xwiki.getDefaultSpace(context) + "String_Node_Str" + xwiki.getDefaultPage(context),context,vcontext);
          context.getResponse().setStatus(HttpServletResponse.SC_BAD_REQUEST);
          Utils.parseTemplate(context.getWiki().Param("String_Node_Str","String_Node_Str"),context);
          return null;
        }
        vcontext.put("String_Node_Str",e);
        if (LOGGER.isWarnEnabled()) {
          if (ExceptionUtils.getRootCauseMessage(e).equals("String_Node_Str")) {
            return null;
          }
          LOGGER.warn("String_Node_Str" + e.getMessage(),e);
        }
        String exceptionTemplate=ajax ? "String_Node_Str" : "String_Node_Str";
        Utils.parseTemplate(Utils.getPage(context.getRequest(),exceptionTemplate),context);
        return null;
      }
 catch (      XWikiException ex) {
        if (ex.getCode() == XWikiException.ERROR_XWIKI_APP_SEND_RESPONSE_EXCEPTION) {
          LOGGER.error("String_Node_Str");
        }
      }
catch (      Exception e2) {
        LOGGER.error("String_Node_Str",e);
        LOGGER.error("String_Node_Str",e2);
      }
      return null;
    }
 finally {
      try {
        context.getResponse().getWriter().flush();
      }
 catch (      Throwable e) {
      }
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
        monitor.startTimer("String_Node_Str");
      }
      if (eventSent) {
        try {
          ObservationManager om=Utils.getComponent(ObservationManager.class);
          om.notify(new ActionExecutedEvent(context.getAction()),context.getDoc(),context);
        }
 catch (        Throwable ex) {
          LOGGER.error("String_Node_Str" + docName + "String_Node_Str"+ context.getAction()+ "String_Node_Str",ex);
        }
      }
      if (monitor != null) {
        monitor.endTimer("String_Node_Str");
      }
      if ((context != null) && (xwiki != null)) {
        xwiki.getStore().cleanUp(context);
      }
    }
  }
  finally {
    if (monitor != null) {
      monitor.endRequest();
    }
    if (context != null) {
      if (fileupload != null) {
        fileupload.cleanFileList(context);
      }
    }
  }
}