if (!cycle.isRewinding()) {
if (!TapestryUtils.isRewinding(cycle, this)) {
    protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {                if (!cycle.isRewinding()) {            User user = getUser();                    // Automatically assign a numeric extension if appropriate            assignExtension();                        // Init the aliases string before rendering, if necessary            if (StringUtils.isEmpty(getAliasesString())) {                setAliasesString(user.getAliasesString());            }            initializePin();            if (getGroupsString() == null) {                setGroupsString(user.getGroupsNames());            }        }                super.renderComponent(writer, cycle);                if (cycle.isRewinding()) {            User user = getUser();                    // Don't take any actions if the page is not valid            if (!TapestryUtils.isValid((AbstractPage) getPage())) {                return;            }            // Set the user aliases from the aliases string            user.setAliasesString(getAliasesString());                        // Make sure that the user ID and aliases don't collide with any other            // user IDs or aliases.  Report an error if there is a collision.            if (checkForUserIdOrAliasCollision()) {                return;            }                        // Update the user's PIN and aliases            updatePin();            String groupsString = getGroupsString();            if (groupsString != null) {                List groups = getSettingDao().getGroupsByString(User.GROUP_RESOURCE_ID, groupsString);                user.setGroupsAsList(groups);            }        }    }