public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws ServletException {
    MaintDmsRenameForm actionForm = (MaintDmsRenameForm) form;
    // DmsDocument document = (DmsDocument) actionForm.getFormData();
    SessionContainer sessionContainer = this.getSessionContainer(request);
    Connection conn = this.getConnection(request);

    DocumentRetrievalManager docRetrievalManager =
        new DocumentRetrievalManager(sessionContainer, conn);

    String opMode = actionForm.getOpMode();
    /*
     * joan.xiong update code for bug EIP-153 by 2006/09/19
     */
    //  DmsDocument document =
    // docRetrievalManager.getDocumentByID(TextUtility.parseIntegerObj(actionForm.getID()));
    DmsDocument document =
        (DmsDocument)
            new com.dcivision.dms.dao.DmsDocumentDAObject(sessionContainer, conn)
                .getDocumentByID(
                    TextUtility.parseIntegerObj(actionForm.getID()), actionForm.getRecordStatus());
    /*
     * joan.xiong update code end
     */
    String path =
        docRetrievalManager.getLocationPath(TextUtility.parseIntegerObj(actionForm.getParentID()));
    request.setAttribute("location", path);

    // Add By Jim Zhou       2007/0110       EIP-1292
    if (!"E".equals(document.getRecordStatus())) {
      MaintDmsDocumentForm documentForm = (MaintDmsDocumentForm) form;
      // Integer documentID = TextUtility.parseIntegerObj(documentForm.getID());
      // DmsDocument document = docRetrievalManager.getDocument(documentID);
      DocumentValidateManager docValidateManager =
          new DocumentValidateManager(sessionContainer, conn);
      StringBuffer message = new StringBuffer();

      DmsValidation validation = docValidateManager.validateOperateAction(document, false, "N");
      List lstIdMisRight = validation.getLstIdReject();
      List lstIdBeLocked = validation.getLstIdlocked();
      List lstIdBeDeleted = validation.getLstIdDeleted();
      List lstIdBeArchived = validation.getLstIdArchived();
      List lstIdRelationship = validation.getLstIdHaveRelationship();
      if (!lstIdMisRight.isEmpty()
          || !lstIdBeLocked.isEmpty()
          || !lstIdBeDeleted.isEmpty()
          || !lstIdBeArchived.isEmpty()) {
        for (int i = 0; i < lstIdMisRight.size(); i++) {
          // request.getSession().setAttribute(org.apache.struts.Globals.ERROR_KEY,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.no_permission",docRetrievalManager.getLocationPath((Integer)lstIdMisRight.get(i))));
          // addMessage(request,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.no_permission",docRetrievalManager.getLocationPath((Integer)lstIdMisRight.get(i))));
          message.append(
              MessageResourcesFactory.getMessage(
                      sessionContainer.getSessionLocale(),
                      "errors.dms.no_permission",
                      docRetrievalManager.getLocationPath((Integer) lstIdMisRight.get(i)))
                  + "\n");
        }
        for (int i = 0; i < lstIdBeLocked.size(); i++) {
          // request.getSession().setAttribute(org.apache.struts.Globals.ERROR_KEY,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.been_checkout",docRetrievalManager.getLocationPath((Integer)lstIdBeLocked.get(i))));
          // addMessage(request,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.been_checkout",docRetrievalManager.getLocationPath((Integer)lstIdBeLocked.get(i))));
          message.append(
              MessageResourcesFactory.getMessage(
                      sessionContainer.getSessionLocale(),
                      "errors.dms.been_checkout",
                      docRetrievalManager.getLocationPath((Integer) lstIdBeLocked.get(i)))
                  + "\n");
        }
        for (int i = 0; i < lstIdBeDeleted.size(); i++) {
          // request.getSession().setAttribute(org.apache.struts.Globals.ERROR_KEY,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.been_deleted",docRetrievalManager.getLocationPath((Integer)lstIdBeDeleted.get(i))));
          // addMessage(request,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.been_deleted",docRetrievalManager.getLocationPath((Integer)lstIdBeDeleted.get(i))));
          message.append(
              MessageResourcesFactory.getMessage(
                      sessionContainer.getSessionLocale(),
                      "errors.dms.been_deleted",
                      docRetrievalManager.getLocationPath((Integer) lstIdBeDeleted.get(i)))
                  + "\n");
        }
        for (int i = 0; i < lstIdBeArchived.size(); i++) {
          // request.getSession().setAttribute(org.apache.struts.Globals.ERROR_KEY,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.been_archived",docRetrievalManager.getLocationPath((Integer)lstIdBeArchived.get(i))));
          // addMessage(request,MessageResourcesFactory.getMessage(sessionContainer.getSessionLocale(),"errors.dms.been_archived",docRetrievalManager.getLocationPath((Integer)lstIdBeArchived.get(i))));
          message.append(
              MessageResourcesFactory.getMessage(
                      sessionContainer.getSessionLocale(),
                      "errors.dms.been_archived",
                      docRetrievalManager.getLocationPath((Integer) lstIdBeArchived.get(i)))
                  + "\n");
        }
        actionForm.setRefreshTag("1");
        addMessage(request, message.toString());
        actionForm.setDocumentName("");
        request.getSession().setAttribute(org.apache.struts.Globals.ERROR_KEY, message.toString());
        return mapping.findForward(GlobalConstant.NAV_MODE_EDIT);
      }
    }
    // Add End

    try {
      if (DmsOperationConstant.RENAME_OPERATION.equals(opMode)) {
        // Insert operation.
        log.debug("enter rename");

        if (!actionForm.getDocumentName().equals(document.getDocumentName())) {
          this.renameRecord(mapping, actionForm, request, response);
          this.commit(request);
          actionForm.setRefreshTag("1");
          addMessage(request, MESSAGE_RECORD_RENAME);
          actionForm.setDocumentName("");
          //
          // request.getSession().setAttribute(MESSAGE_RECORD_RENAME,MESSAGE_RECORD_RENAME);//joan.xiong add code for bug EIP-172 by 2006/10/12
          request
              .getSession()
              .setAttribute(org.apache.struts.Globals.MESSAGE_KEY, MESSAGE_RECORD_RENAME);
        }
      }
    } catch (ApplicationException appEx) {
      this.rollback(request);
      handleApplicationException(request, appEx);
      //      throw new ApplicationException(ErrorConstant.DB_UPDATE_ERROR);
    }
    return mapping.findForward(GlobalConstant.NAV_MODE_EDIT);
  }
  public void renameRecord(
      ActionMapping mapping,
      AbstractActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws ApplicationException {
    SessionContainer sessionContainer = this.getSessionContainer(request);
    Connection conn = this.getConnection(request);
    DocumentOperationManager docOperationManager =
        new DocumentOperationManager(sessionContainer, conn);
    DocumentRetrievalManager documentRetrievalManager =
        new DocumentRetrievalManager(sessionContainer, conn);

    MaintDmsRenameForm documentForm = (MaintDmsRenameForm) form;

    // set the docDetailList and userDefinedFieldID
    DmsDocumentDetailDAObject dmsDocumentDetailDAObj =
        new DmsDocumentDetailDAObject(sessionContainer, conn);
    Integer documentID = TextUtility.parseIntegerObj(documentForm.getID());
    /*
     * joan.xiong update code for bug EIP-153 by 2006/09/19
     */
    //  DmsDocument document = documentRetrievalManager.getDocumentByID(documentID);
    DmsDocument document =
        (DmsDocument)
            new com.dcivision.dms.dao.DmsDocumentDAObject(sessionContainer, conn)
                .getDocumentByID(documentID, documentForm.getRecordStatus());
    /*
     * joan.xiong update code end
     */
    // Add By Jim.Zhou
    DmsDocument dmsDocument = documentRetrievalManager.getMyFavoriteObject();
    // Add End
    /*
     * Update Code Start
     * Author	Jim.Zhou
     * Date		2006/03/29
     */
    /*
    if ("My Favorite".equals(document.getDocumentName())){
    	throw new ApplicationException(DmsErrorConstant.DMS_MESSAGE_UNABLE_RENAME_MYFAVORIT,null);
    } else {
    	document.setDocumentName(documentForm.getDocumentName());
    }
     */
    // Add By Jim.Zhou		2006/07/14		Bug #5006
    if (dmsDocument.getID().equals(document.getID())) {
      // this.addError(request,DmsErrorConstant.DMS_MESSAGE_UNABLE_DELETE_MYFAVORITE);
      // continue;
      throw new ApplicationException(DmsErrorConstant.DMS_MESSAGE_UNABLE_RENAME_MYFAVORIT, null);
    }
    // Add End
    /*
     * Update Code End
     */

    document.setDocumentName(documentForm.getDocumentName());

    List docDetailList = dmsDocumentDetailDAObj.getListByDocumentID(documentID);
    if (!Utility.isEmpty(docDetailList)) {
      DmsDocumentDetail tmpDmsDocumentDetail = (DmsDocumentDetail) docDetailList.get(0);
      Integer userDefinedFieldID = tmpDmsDocumentDetail.getUserDefinedFieldID();
      document.setDocumentDetails(docDetailList);
      document.setUserDefinedFieldID(userDefinedFieldID);
    }

    if (Utility.isEmpty(documentForm.getDocumentName())
        || "".equals(documentForm.getDocumentName().trim())) {
      if (DmsDocument.FOLDER_TYPE.equals(documentForm.getDocumentType())) {
        throw new EmptyContentException(DmsErrorConstant.EMPTY_FOLDER_NAME);
      } else {
        throw new EmptyContentException(DmsErrorConstant.EMPTY_DOCUMENT_NAME);
      }
    }
    DmsDocument newDocument = docOperationManager.renameRecord(document);
    documentForm.setFormData(newDocument);

    sessionContainer = null;
    conn = null;
    docOperationManager.release();
  }