while (!isEndPointReached && !GrouperHelper.NS_ROOT.equals(map.get("stem"))) {
while (!isEndPointReached && !"".equals(map.get("stem")) && !GrouperHelper.NS_ROOT.equals(map.get("stem"))) {
	public List getParentStems(GroupOrStem groupOrStem) throws Exception{		List path = new ArrayList();		if(groupOrStem==null) return path;		Map map = GrouperHelper.group2Map(s, groupOrStem);		Stem curStem = null;		String endPoint = GrouperHelper.NS_ROOT;				boolean isEndPointReached = false;		if(isHidePreRootNode()) {			endPoint = getRootNode();			if(map.get("name").equals(endPoint)) isEndPointReached=true;		}		while (!isEndPointReached && !GrouperHelper.NS_ROOT.equals(map.get("stem"))) {			curStem = StemFinder.findByName(s, (String) map.get("stem"));			if (curStem != null) {				map = GrouperHelper.stem2Map(s, curStem);				path.add(0, map);				if(curStem.getName().equals(endPoint))isEndPointReached=true;			}		}		if(!isEndPointReached) {			path.add(0, GrouperHelper.stem2Map(s, StemFinder.findRootStem(s)));		}		return path;			}