public ActionForward create(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws FenixServiceException {
    final ResultParticipationCreationBean bean = getRenderedObject("bean");

    request.setAttribute("bean", bean);
    try {
      if (bean.getParticipator() == null) {
        if (bean.isBeanExternal()) {
          request.setAttribute("name", bean.getParticipatorName());
          request.setAttribute("needToCreatePerson", true);
          schemasStateAutomaton(request, bean.getResult(), bean, false);
        } else {
          throw new DomainException("error.label.invalidNameForPersonInSelection");
        }
      } else {
        createParticipation(bean);
        schemasStateAutomaton(request, bean.getResult(), bean, false);
      }
    } catch (Exception e) {
      final ActionForward defaultForward = backToResultList(mapping, form, request, response);
      if (bean != null) {
        bean.reset();
      }
      return processException(request, mapping, defaultForward, e);
    }

    // bean.reset();
    checkRolesInCreation(request);
    request.setAttribute("bean", bean);
    request.setAttribute("result", bean.getResult());
    RenderUtils.invalidateViewState();
    return mapping.findForward("editParticipation");
  }
 public ActionForward changeUnitType(
     ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response)
     throws FenixServiceException {
   final ResultParticipationCreationBean bean = getRenderedObject("bean");
   ResearchResult result = bean.getResult();
   request.setAttribute("bean", bean);
   request.setAttribute("result", result);
   schemasStateAutomaton(request, result, bean, true);
   checkRolesInCreation(request);
   RenderUtils.invalidateViewState("bean");
   return mapping.findForward("editParticipation");
 }