if ("".equals(stemForm.get("stemDisplayName"))) stemForm.set("stemDisplayName", stemName);
	public ActionForward grouperExecute(ActionMapping mapping, ActionForm form,			HttpServletRequest request, HttpServletResponse response,			HttpSession session, GrouperSession grouperSession)			throws Exception {		DynaActionForm stemForm = (DynaActionForm) form;		boolean stemExists = false;		String curNode = (String) stemForm.get("stemId");		if (curNode == null || "".equals(curNode)) {			//If new stem need to get parent stem			curNode = getBrowseNode(session);		} else {			stemExists = true;		}		if (curNode == null || "".equals(curNode)) {			String defaultStem = getDefaultRootStemName(session);			if(GrouperHelper.NS_ROOT.equals(defaultStem)) {				curNode = defaultStem;			}else {				Stem root = StemFinder.findByName(grouperSession, defaultStem);				curNode = root.getUuid();			}		}				Stem stem = null;		String id = null;				//TODO: should be transactional		if (stemExists) {			stem = StemFinder.findByUuid(grouperSession, curNode);				} else {			Stem parentStem=null;			if(curNode.equals(GrouperHelper.NS_ROOT)) {				parentStem=StemFinder.findRootStem(grouperSession);			}else{				parentStem = StemFinder.findByUuid(grouperSession,					curNode);			}			stem = parentStem.addChildStem((String) stemForm.get("stemName"),(String) stemForm.get("stemDisplayName"));			stem.grantPriv(grouperSession.getSubject(),Privilege.getInstance("create"));			id = stem.getUuid();			stemForm.set("stemId", id);		}		String stemName = stem.getName().substring(				stem.getName().lastIndexOf(HIER_DELIM) + 1);		if (!stemExists && !stemName.matches("[^\"<>:\\*]+")) {			request.setAttribute("message", new Message(					"stems.message.error.invalid-char", true));			if (stemExists) {				return mapping.findForward(FORWARD_EditAgain);			} else {				return mapping.findForward(FORWARD_CreateAgain);			}		}		if ("".equals(stemForm.get("stemDisplayName")))			stemForm.set("stemDisplayName", stemName);		stem.setDisplayExtension((String) stemForm.get("stemDisplayName"));					String val = (String) stemForm.get("stemDescription");			if("".equals(val)) val=null;			if(val!=null)	stem.setDescription(val);				request.setAttribute("message", new Message("stems.message.stem-saved",				(String) stemForm.get("stemDisplayName")));		String submit = request.getParameter("submit.save");		if(submit==null) {			submit = request.getParameter("submit.save_work_in_new");			if(submit!=null) setBrowseNode(stem.getUuid(),session);		}				if (submit != null) {			return mapping.findForward(FORWARD_CreateGroups);		}		submit = request.getParameter("submit.save_show_members");		request.setAttribute("stemId", stem.getUuid());		request.setAttribute("forStems", Boolean.TRUE);		session.setAttribute("findForNode", stem.getUuid());		request.setAttribute("message", new Message(				"groups.message.group-saved", (String) stemForm						.get("stemDisplayName")));		if (submit != null) {			return mapping.findForward(FORWARD_StemMembers);		}		return mapping.findForward(FORWARD_FindNewMembers);	}