protected Object formBackingObject(HttpServletRequest request) throws Exception {
    logger.debug("formBackingObject - START");

    // used as a container for info/error messages
    ArrayList<String> infoMessages = new ArrayList<String>();
    ArrayList<String> errorMessages = new ArrayList<String>();

    SearchExchangeBean searchExchangeBean = new SearchExchangeBean();
    UserAuth userAuth =
        (UserAuth) SecurityContextHolder.getContext().getAuthentication().getPrincipal();

    // we set the initial search parameters
    searchExchangeBean.setSortDirection(IConstant.ASCENDING);
    searchExchangeBean.setSortParam("projectName");
    searchExchangeBean.setOrganizationId(
        ControllerUtils.getInstance().getOrganisationIdFromSession(request));

    String action = ServletRequestUtils.getStringParameter(request, IConstant.REQ_ACTION);
    Integer exchangeId = ServletRequestUtils.getIntParameter(request, EXCHANGE_ID);

    // deletes an exchange if the request comes from exchange form
    if (action != null && DELETE_FROM_EXCHANGE_FORM.equals(action) && exchangeId != null) {
      handleDeleteFromExchangeForm(
          request, searchExchangeBean, exchangeId, infoMessages, errorMessages);
    }

    // setting all messages on response
    setMessages(request, infoMessages);
    setErrors(request, errorMessages);

    logger.debug("formBackingObject - END");
    return searchExchangeBean;
  }