//# 1 errors, 463 messages
//#
/*
    //#Register.java:1:1: class: org.apache.roller.weblogger.ui.struts2.core.Register
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */

package org.apache.roller.weblogger.ui.struts2.core;

import java.util.Locale;
import java.util.TimeZone;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.CharSetUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.config.WebloggerConfig;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.ui.core.security.CustomUserRegistry;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.MailUtil;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.validation.SkipValidation;


/**
 * Actions for registering a new user.
 */
public class Register extends UIAction implements ServletRequestAware {
    
    private static Log log = LogFactory.getLog(Register.class);
    //#Register.java:47: method: org.apache.roller.weblogger.ui.struts2.core.Register.org.apache.roller.weblogger.ui.struts2.core.Register__static_init
    //#Register.java:47: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: org.apache.roller.weblogger.ui.struts2.core.Register__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): DEFAULT_ALLOWED_CHARS
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/Register]
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.activate()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.execute()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getActivationCode()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getActivationStatus()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/core/ProfileBean;
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getServletRequest()Ljavax/servlet/http/HttpServletRequest;
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.isFromSS0()Z
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.isUserRequired()Z
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.isWeblogRequired()Z
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.myValidate()V
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.save()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setActivationCode(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setActivationStatus(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/core/ProfileBean;)V
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setFromSS0(Z)V
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setServletRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#output(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): log
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): DEFAULT_ALLOWED_CHARS == &"A-Za-z0-9"
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/Register] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.activate()Ljava/lang/String; == &activate
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.execute()Ljava/lang/String; == &execute
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getActivationCode()Ljava/lang/String; == &getActivationCode
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getActivationStatus()Ljava/lang/String; == &getActivationStatus
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/core/ProfileBean; == &getBean
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.getServletRequest()Ljavax/servlet/http/HttpServletRequest; == &getServletRequest
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.isFromSS0()Z == &isFromSS0
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.isUserRequired()Z == &isUserRequired
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.isWeblogRequired()Z == &isWeblogRequired
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.myValidate()V == &myValidate
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.save()Ljava/lang/String; == &save
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setActivationCode(Ljava/lang/String;)V == &setActivationCode
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setActivationStatus(Ljava/lang/String;)V == &setActivationStatus
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/core/ProfileBean;)V == &setBean
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setFromSS0(Z)V == &setFromSS0
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): __Dispatch_Table.setServletRequest(Ljavax/servlet/http/HttpServletRequest;)V == &setServletRequest
    //#post(org.apache.roller.weblogger.ui.struts2.core.Register__static_init): init'ed(log)
    
    public static String DEFAULT_ALLOWED_CHARS = "A-Za-z0-9";
    //#Register.java:49: end of method: org.apache.roller.weblogger.ui.struts2.core.Register.org.apache.roller.weblogger.ui.struts2.core.Register__static_init
    
    // this is a no-no, we should not need this
    private HttpServletRequest servletRequest = null;
    
    private boolean fromSS0 = false;
    private String activationStatus = null;
    
    private String activationCode = null;
    private ProfileBean bean = new ProfileBean();
    
    
    public Register() {
    //#Register.java:61: method: void org.apache.roller.weblogger.ui.struts2.core.Register.org.apache.roller.weblogger.ui.struts2.core.Register()
    //#Register.java:61: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void org.apache.roller.weblogger.ui.struts2.core.Register()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#input(void org.apache.roller.weblogger.ui.struts2.core.Register()): this
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): new ProfileBean(Register#1) num objects
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.__Tag
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.emailAddress
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.fullName
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.id
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.locale
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.password
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.passwordConfirm
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.passwordText
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.screenName
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.timeZone
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.userName
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.activationCode
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.activationStatus
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.fromSS0
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.pageTitle
    //#output(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.servletRequest
    //#new obj(void org.apache.roller.weblogger.ui.struts2.core.Register()): new ProfileBean(Register#1)
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.activationCode == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.activationStatus == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.servletRequest == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.emailAddress == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.fullName == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.id == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.locale == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.password == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.passwordConfirm == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.passwordText == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.screenName == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.timeZone == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.userName == null
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean == &new ProfileBean(Register#1)
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.fromSS0 == 0
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.pageTitle == &"newUser.addNewUser"
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): new ProfileBean(Register#1) num objects == 1
    //#post(void org.apache.roller.weblogger.ui.struts2.core.Register()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/core/ProfileBean
        this.pageTitle = "newUser.addNewUser";
    }
    //#Register.java:63: end of method: void org.apache.roller.weblogger.ui.struts2.core.Register.org.apache.roller.weblogger.ui.struts2.core.Register()
    
    
    // override default security, we do not require an authenticated user
    public boolean isUserRequired() {
        return false;
    //#Register.java:68: method: bool org.apache.roller.weblogger.ui.struts2.core.Register.isUserRequired()
    //#output(bool isUserRequired()): return_value
    //#post(bool isUserRequired()): return_value == 0
    //#Register.java:68: end of method: bool org.apache.roller.weblogger.ui.struts2.core.Register.isUserRequired()
    }
    
    // override default security, we do not require an action weblog
    public boolean isWeblogRequired() {
        return false;
    //#Register.java:73: method: bool org.apache.roller.weblogger.ui.struts2.core.Register.isWeblogRequired()
    //#output(bool isWeblogRequired()): return_value
    //#post(bool isWeblogRequired()): return_value == 0
    //#Register.java:73: end of method: bool org.apache.roller.weblogger.ui.struts2.core.Register.isWeblogRequired()
    }
    
    
    @SkipValidation
    public String execute() {
        
        if(!WebloggerRuntimeConfig.getBooleanProperty("users.registration.enabled")) {
    //#Register.java:80: method: String org.apache.roller.weblogger.ui.struts2.core.Register.execute()
    //#Register.java:80: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String execute()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
    //#input(String execute()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/Register]
    //#input(String execute()): __Descendant_Table[others]
    //#input(String execute()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/core/ProfileBean;
    //#input(String execute()): __Dispatch_Table.setFromSS0(Z)V
    //#input(String execute()): log
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/ProfileBean]
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Descendant_Table[others]
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.copyFrom(Lorg/apache/roller/weblogger/pojos/User;)V
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setLocale(Ljava/lang/String;)V
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setTimeZone(Ljava/lang/String;)V
    //#input(String execute()): this
    //#input(String execute()): this.__Tag
    //#input(String execute()): this.bean
    //#input(String execute()): this.bean.__Tag
    //#output(String execute()): java.util.Locale:toString(...)._tainted
    //#output(String execute()): return_value
    //#output(String execute()): this.bean.emailAddress
    //#output(String execute()): this.bean.fullName
    //#output(String execute()): this.bean.id
    //#output(String execute()): this.bean.locale
    //#output(String execute()): this.bean.password
    //#output(String execute()): this.bean.screenName
    //#output(String execute()): this.bean.timeZone
    //#output(String execute()): this.bean.userName
    //#output(String execute()): this.fromSS0
    //#new obj(String execute()): java.util.Locale:toString(...)
    //#pre[1] (String execute()): (soft) log != null
    //#pre[12] (String execute()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/core/Register
    //#pre[13] (String execute()): (soft) this.bean != null
    //#pre[14] (String execute()): (soft) this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/core/ProfileBean
    //#presumption(String execute()): java.util.Locale:getDefault(...)@85 != null
    //#presumption(String execute()): java.util.TimeZone:getDefault(...)@86 != null
    //#post(String execute()): java.util.Locale:toString(...)._tainted == 0
    //#post(String execute()): return_value in Addr_Set{&"input",&"disabled"}
    //#post(String execute()): possibly_updated(this.bean.emailAddress)
    //#post(String execute()): possibly_updated(this.bean.fullName)
    //#post(String execute()): possibly_updated(this.bean.id)
    //#post(String execute()): possibly_updated(this.bean.locale)
    //#post(String execute()): possibly_updated(this.bean.password)
    //#post(String execute()): possibly_updated(this.bean.screenName)
    //#post(String execute()): possibly_updated(this.bean.timeZone)
    //#post(String execute()): possibly_updated(this.bean.userName)
    //#post(String execute()): possibly_updated(this.fromSS0)
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getId
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getUserName
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getPassword
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getScreenName
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getFullName
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getEmailAddress
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getLocale
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getTimeZone
    //#test_vector(String execute()): org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(...)@91: {0}, {1}
    //#test_vector(String execute()): org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(...)@80: {1}, {0}
    //#test_vector(String execute()): org.apache.roller.weblogger.ui.core.security.CustomUserRegistry:getUserDetailsFromAuthentication(...)@93: Addr_Set{null}, Inverse{null}
            return "disabled";
        }
        
        // set some defaults
        getBean().setLocale(Locale.getDefault().toString());
        getBean().setTimeZone(TimeZone.getDefault().getID());
            
        try {
            // Let's see if there's any user-authentication available from Acegi
            // and retrieve custom user data to pre-populate form.
            boolean usingSSO = WebloggerConfig.getBooleanProperty("users.sso.enabled");
    //#Register.java:91: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String execute()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
            if(usingSSO) {
                User fromSSO = CustomUserRegistry.getUserDetailsFromAuthentication();
    //#Register.java:93: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.ui.core.security.CustomUserRegistry:getUserDetailsFromAuthentication()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String execute()
    //#    unanalyzed callee: User org.apache.roller.weblogger.ui.core.security.CustomUserRegistry:getUserDetailsFromAuthentication()
                if(fromSSO != null) {
                    getBean().copyFrom(fromSSO);
                    setFromSS0(true);
                }
            }
            
        } catch (Exception ex) {
            log.error("Error reading SSO user data", ex);
    //#Register.java:101: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String execute()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            addError("error.editing.user", ex.toString());
    //#Register.java:102: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String execute()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String, String)
        }
        
        return INPUT;
    //#Register.java:105: end of method: String org.apache.roller.weblogger.ui.struts2.core.Register.execute()
    }
    
    
    public String save() {
        
        if(!WebloggerRuntimeConfig.getBooleanProperty("users.registration.enabled")) {
    //#Register.java:111: method: String org.apache.roller.weblogger.ui.struts2.core.Register.save()
    //#Register.java:111: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
    //#input(String save()): "Error sending activation email to - "._tainted
    //#input(String save()): DEFAULT_ALLOWED_CHARS
    //#input(String save()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/Register]
    //#input(String save()): __Descendant_Table[others]
    //#input(String save()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/core/ProfileBean;
    //#input(String save()): __Dispatch_Table.getServletRequest()Ljavax/servlet/http/HttpServletRequest;
    //#input(String save()): __Dispatch_Table.myValidate()V
    //#input(String save()): __Dispatch_Table.setActivationStatus(Ljava/lang/String;)V
    //#input(String save()): __Dispatch_Table.setFromSS0(Z)V
    //#input(String save()): java.lang.Boolean.FALSE
    //#input(String save()): java.lang.Boolean.TRUE
    //#input(String save()): log
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/ProfileBean]
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Descendant_Table[others]
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.copyTo(Lorg/apache/roller/weblogger/pojos/User;)V
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.getPasswordConfirm()Ljava/lang/String;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.getPasswordText()Ljava/lang/String;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.getUserName()Ljava/lang/String;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setPasswordConfirm(Ljava/lang/String;)V
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setPasswordText(Ljava/lang/String;)V
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setUserName(Ljava/lang/String;)V
    //#input(String save()): this
    //#input(String save()): this.__Tag
    //#input(String save()): this.bean
    //#input(String save()): this.bean.__Tag
    //#input(String save()): this.bean.emailAddress
    //#input(String save()): this.bean.fullName
    //#input(String save()): this.bean.locale
    //#input(String save()): this.bean.passwordConfirm
    //#input(String save()): this.bean.passwordText
    //#input(String save()): this.bean.screenName
    //#input(String save()): this.bean.timeZone
    //#input(String save()): this.bean.userName
    //#input(String save()): this.servletRequest
    //#output(String save()): return_value
    //#output(String save()): this.activationStatus
    //#output(String save()): this.bean.passwordConfirm
    //#output(String save()): this.bean.passwordText
    //#output(String save()): this.bean.userName
    //#output(String save()): this.fromSS0
    //#pre[1] (String save()): (soft) init'ed(DEFAULT_ALLOWED_CHARS)
    //#pre[2] (String save()): (soft) log != null
    //#pre[4] (String save()): (soft) init'ed(this.bean.passwordConfirm)
    //#pre[5] (String save()): (soft) this.bean.passwordText != null
    //#pre[6] (String save()): (soft) init'ed(this.bean.userName)
    //#pre[9] (String save()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/core/Register
    //#pre[10] (String save()): (soft) this.bean != null
    //#pre[11] (String save()): (soft) this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/core/ProfileBean
    //#pre[12] (String save()): (soft) init'ed(this.bean.emailAddress)
    //#pre[13] (String save()): (soft) init'ed(this.bean.fullName)
    //#pre[14] (String save()): (soft) init'ed(this.bean.locale)
    //#pre[15] (String save()): (soft) init'ed(this.bean.screenName)
    //#pre[16] (String save()): (soft) init'ed(this.bean.timeZone)
    //#pre[17] (String save()): (soft) this.servletRequest != null
    //#presumption(String save()): init'ed(java.lang.Boolean.FALSE)
    //#presumption(String save()): init'ed(java.lang.Boolean.TRUE)
    //#presumption(String save()): java.util.UUID:randomUUID(...)@142 != null
    //#presumption(String save()): java.util.UUID:randomUUID(...)@150 != null
    //#presumption(String save()): javax.servlet.http.HttpServletRequest:getSession(...)@184 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@119 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@119 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@167 != null
    //#post(String save()): return_value in Addr_Set{&"success",&"input",&"disabled"}
    //#post(String save()): this.activationStatus == One-of{old this.activationStatus, &"pending"}
    //#post(String save()): init'ed(this.bean.passwordConfirm)
    //#post(String save()): this.bean.passwordText != null
    //#post(String save()): init'ed(this.bean.userName)
    //#post(String save()): possibly_updated(this.fromSS0)
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.ui.core.security.CustomUserRegistry:getUserDetailsFromAuthentication
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getProperty
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getPassword
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getUserName
    //#unanalyzed(String save()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(String save()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String save()): Effects-of-calling:org.apache.commons.lang.CharSetUtils:keep
    //#unanalyzed(String save()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.core.Register:addError
    //#unanalyzed(String save()): Effects-of-calling:org.apache.commons.lang.StringUtils:isEmpty
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getUserByUserName
    //#unanalyzed(String save()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String save()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setScreenName
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setFullName
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setEmailAddress
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setLocale
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:setTimeZone
    //#test_vector(String save()): org.apache.commons.lang.StringUtils:isEmpty(...)@129: {1}, {0}
    //#test_vector(String save()): org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(...)@144: Addr_Set{null}, Inverse{null}
    //#test_vector(String save()): org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(...)@111: {1}, {0}
    //#test_vector(String save()): org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(...)@135: {0}, {1}
    //#test_vector(String save()): org.apache.roller.weblogger.pojos.User:getActivationCode(...)@170: Addr_Set{null}, Inverse{null}
    //#test_vector(String save()): org.apache.roller.weblogger.ui.struts2.core.Register:hasActionErrors(...)@117: {1}, {0}
            return "disabled";
        }
        
        myValidate();
        
        if (!hasActionErrors()) try {
    //#Register.java:117: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.struts2.core.Register:hasActionErrors()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.struts2.core.Register:hasActionErrors()
            
            UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
    //#Register.java:119: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Register.java:119: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            
            // copy form data into new user pojo
            User ud = new User();
    //#Register.java:122: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User()
            getBean().copyTo(ud); // doesn't copy password
            ud.setUserName(getBean().getUserName());
    //#Register.java:124: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:setUserName(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:setUserName(String)
            ud.setDateCreated(new java.util.Date());
    //#Register.java:125: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:setDateCreated(Date)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:setDateCreated(Date)
            ud.setEnabled(Boolean.TRUE);
    //#Register.java:126: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:setEnabled(Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:setEnabled(Boolean)
            
            // If user set both password and passwordConfirm then reset password
            if (!StringUtils.isEmpty(getBean().getPasswordText()) && 
    //#Register.java:129: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
                    !StringUtils.isEmpty(getBean().getPasswordConfirm())) {
                ud.resetPassword(getBean().getPasswordText());
    //#Register.java:131: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:resetPassword(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:resetPassword(String)
            }
            
            // are we using email activation?
            boolean activationEnabled = WebloggerRuntimeConfig.getBooleanProperty(
    //#Register.java:135: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
                    "user.account.activation.enabled");
            if (activationEnabled) {
                // User account will be enabled after the activation process
                ud.setEnabled(Boolean.FALSE);
    //#Register.java:139: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:setEnabled(Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:setEnabled(Boolean)
                
                // Create & save the activation data
                String activationCode = UUID.randomUUID().toString();
                
                if (mgr.getUserByActivationCode(activationCode) != null) {
    //#Register.java:144: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(String)
                    // In the *extremely* unlikely event that we generate an
                    // activation code that is already use, we'll retry 3 times.
                    int numOfRetries = 3;
                    if (numOfRetries < 1) numOfRetries = 1;
    //#Register.java:148: Warning: test always goes same way
    //#    test predetermined because numOfRetries == 3
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    from bb: bb_10
    //#    live edge: bb_10-->bb_12
    //#    tested vn: 2
    //#    tested vn values: {2}
    //#Register.java:148: Warning: dead code
    //#    dead code here because numOfRetries == 3
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    dead bb: bb_11
                    for (int i = 0; i < numOfRetries; i++) {
                        activationCode = UUID.randomUUID().toString();
                        if (mgr.getUserByActivationCode(activationCode) == null) {
    //#Register.java:151: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(String)
                            break;
                        } else {
                            activationCode = null;
                        }
                    }
                    // In more unlikely event that three retries isn't enough
                    if (activationCode == null){
    //#Register.java:158: ?org/apache/roller/weblogger/WebloggerException check
    //#    activationCode != null
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    basic block: bb_17
    //#    assertion: activationCode != null
    //#    VN: activationCode == null
    //#    Expected: {0}
    //#    Bad: {1}
    //#    Attribs:  Int  Exp in +/-1000  Exp singleton  Bad singleton  Bad overlaps +/-1000  Bad > Exp
                        throw new WebloggerException("error.add.user.activationCodeInUse");
                    }
                }
                ud.setActivationCode(activationCode);
    //#Register.java:162: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:setActivationCode(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:setActivationCode(String)
            }
            
            // save new user
            mgr.addUser(ud);
    //#Register.java:166: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.UserManager:addUser(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.UserManager:addUser(User)
            WebloggerFactory.getWeblogger().flush();
    //#Register.java:167: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Register.java:167: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
            
            // now send activation email if necessary
            if (activationEnabled && ud.getActivationCode() != null) {
    //#Register.java:170: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.User:getActivationCode()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.User:getActivationCode()
                try {
                    // send activation mail to the user
                    MailUtil.sendUserActivationEmail(ud);
    //#Register.java:173: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.util.MailUtil:sendUserActivationEmail(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.util.MailUtil:sendUserActivationEmail(User)
                } catch (WebloggerException ex) {
                    log.error("Error sending activation email to - "+ud.getEmailAddress(), ex);
    //#Register.java:175: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.User:getEmailAddress()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.User:getEmailAddress()
    //#Register.java:175: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
                }
                
                setActivationStatus("pending");
            }
             
            // Invalidate session, otherwise new user who was originally
            // authenticated via LDAP/SSO will remain logged in with
            // a but without a valid Roller role.
            getServletRequest().getSession().invalidate();
            
            // set a special page title
            setPageTitle("welcome.title");
    //#Register.java:187: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:setPageTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:setPageTitle(String)
            
            return SUCCESS;
            
        } catch (WebloggerException ex) {
            log.error("Error adding new user", ex);
    //#Register.java:192: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Error adding new user");
    //#Register.java:194: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
        }
        
        return INPUT;
    //#Register.java:197: end of method: String org.apache.roller.weblogger.ui.struts2.core.Register.save()
    }
    
    
    @SkipValidation
    public String activate() {
        
        try {
            UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
    //#Register.java:205: method: String org.apache.roller.weblogger.ui.struts2.core.Register.activate()
    //#Register.java:205: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Register.java:205: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#input(String activate()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/Register]
    //#input(String activate()): __Descendant_Table[others]
    //#input(String activate()): __Dispatch_Table.getActivationCode()Ljava/lang/String;
    //#input(String activate()): __Dispatch_Table.setActivationStatus(Ljava/lang/String;)V
    //#input(String activate()): java.lang.Boolean.TRUE
    //#input(String activate()): log
    //#input(String activate()): this
    //#input(String activate()): this.__Tag
    //#input(String activate()): this.activationCode
    //#output(String activate()): return_value
    //#output(String activate()): this.activationStatus
    //#pre[1] (String activate()): (soft) log != null
    //#pre[4] (String activate()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/core/Register
    //#pre[5] (String activate()): (soft) init'ed(this.activationCode)
    //#presumption(String activate()): init'ed(java.lang.Boolean.TRUE)
    //#presumption(String activate()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@205 != null
    //#presumption(String activate()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@205 != null
    //#presumption(String activate()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@217 != null
    //#post(String activate()): return_value == &"success"
    //#post(String activate()): this.activationStatus == One-of{old this.activationStatus, &"active", &"error"}
    //#test_vector(String activate()): this.activationCode: Inverse{null}, Addr_Set{null}
    //#test_vector(String activate()): org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(...)@210: Addr_Set{null}, Inverse{null}
    //#test_vector(String activate()): org.apache.roller.weblogger.ui.struts2.core.Register:hasActionErrors(...)@231: {0}, {1}
            
            if (getActivationCode() == null) {
                addError("error.activate.user.missingActivationCode");
    //#Register.java:208: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
            } else {
                User user = mgr.getUserByActivationCode(getActivationCode());
    //#Register.java:210: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByActivationCode(String)
                
                if (user != null) {
                    // enable user account
                    user.setEnabled(Boolean.TRUE);
    //#Register.java:214: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:setEnabled(Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:setEnabled(Boolean)
                    user.setActivationCode(null);
    //#Register.java:215: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.User:setActivationCode(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.User:setActivationCode(String)
                    mgr.saveUser(user);
    //#Register.java:216: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.UserManager:saveUser(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.UserManager:saveUser(User)
                    WebloggerFactory.getWeblogger().flush();
    //#Register.java:217: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Register.java:217: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
                    
                    setActivationStatus("active");
                    
                } else {
                    addError("error.activate.user.invalidActivationCode");
    //#Register.java:222: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
                }
            }
            
        } catch (WebloggerException e) {
            addError(e.getMessage());
    //#Register.java:227: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.WebloggerException:getMessage()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: String org.apache.roller.weblogger.WebloggerException:getMessage()
    //#Register.java:227: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
            log.error("ERROR in activateUser", e);
    //#Register.java:228: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        
        if (hasActionErrors()) {
    //#Register.java:231: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.struts2.core.Register:hasActionErrors()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.struts2.core.Register:hasActionErrors()
            setActivationStatus("error");
        }
        
        // set a special page title
        setPageTitle("welcome.title");
    //#Register.java:236: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:setPageTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: String activate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:setPageTitle(String)
            
        return SUCCESS;
    //#Register.java:238: end of method: String org.apache.roller.weblogger.ui.struts2.core.Register.activate()
    }
    
    
    public void myValidate() {
        
        // if usingSSO, we don't want to error on empty password/username from HTML form.
        setFromSS0(false);
    //#Register.java:245: method: void org.apache.roller.weblogger.ui.struts2.core.Register.myValidate()
    //#input(void myValidate()): DEFAULT_ALLOWED_CHARS
    //#input(void myValidate()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/Register]
    //#input(void myValidate()): __Descendant_Table[others]
    //#input(void myValidate()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/core/ProfileBean;
    //#input(void myValidate()): __Dispatch_Table.setFromSS0(Z)V
    //#input(void myValidate()): log
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/core/ProfileBean]
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Descendant_Table[others]
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.getPasswordConfirm()Ljava/lang/String;
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.getPasswordText()Ljava/lang/String;
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.getUserName()Ljava/lang/String;
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setPasswordConfirm(Ljava/lang/String;)V
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setPasswordText(Ljava/lang/String;)V
    //#input(void myValidate()): org/apache/roller/weblogger/ui/struts2/core/ProfileBean.__Dispatch_Table.setUserName(Ljava/lang/String;)V
    //#input(void myValidate()): this
    //#input(void myValidate()): this.__Tag
    //#input(void myValidate()): this.bean
    //#input(void myValidate()): this.bean.__Tag
    //#input(void myValidate()): this.bean.passwordConfirm
    //#input(void myValidate()): this.bean.passwordText
    //#input(void myValidate()): this.bean.userName
    //#output(void myValidate()): this.bean.passwordConfirm
    //#output(void myValidate()): this.bean.passwordText
    //#output(void myValidate()): this.bean.userName
    //#output(void myValidate()): this.fromSS0
    //#pre[7] (void myValidate()): this.__Tag == org/apache/roller/weblogger/ui/struts2/core/Register
    //#pre[8] (void myValidate()): this.bean != null
    //#pre[9] (void myValidate()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/core/ProfileBean
    //#pre[1] (void myValidate()): (soft) init'ed(DEFAULT_ALLOWED_CHARS)
    //#pre[2] (void myValidate()): (soft) log != null
    //#pre[3] (void myValidate()): (soft) init'ed(this.bean.passwordConfirm)
    //#pre[4] (void myValidate()): (soft) this.bean.passwordText != null
    //#pre[5] (void myValidate()): (soft) init'ed(this.bean.userName)
    //#presumption(void myValidate()): org.apache.commons.lang.CharSetUtils:keep(...)@268 != null
    //#presumption(void myValidate()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@280 != null
    //#presumption(void myValidate()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@280 != null
    //#presumption(void myValidate()): org.apache.roller.weblogger.config.WebloggerConfig:getProperty(...)@251 != null
    //#presumption(void myValidate()): org.apache.roller.weblogger.pojos.User:getPassword(...)@253 != null
    //#post(void myValidate()): init'ed(this.bean.passwordConfirm)
    //#post(void myValidate()): this.bean.passwordText != null
    //#post(void myValidate()): init'ed(this.bean.userName)
    //#post(void myValidate()): init'ed(this.fromSS0)
    //#test_vector(void myValidate()): java.lang.String:equals(...)@269: {1}, {0}
    //#test_vector(void myValidate()): java.lang.String:equals(...)@274: {1}, {0}
    //#test_vector(void myValidate()): java.lang.String:length(...)@263: {1..4_294_967_295}, {0}
    //#test_vector(void myValidate()): org.apache.commons.lang.StringUtils:isEmpty(...)@279: {1}, {0}
    //#test_vector(void myValidate()): org.apache.roller.weblogger.business.UserManager:getUserByUserName(...)@281: Addr_Set{null}, Inverse{null}
    //#test_vector(void myValidate()): org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(...)@246: {0}, {1}
    //#test_vector(void myValidate()): org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(...)@248: {0}, {1}
    //#test_vector(void myValidate()): org.apache.roller.weblogger.config.WebloggerConfig:getProperty(...)@262: Addr_Set{null}, Inverse{null}
    //#test_vector(void myValidate()): org.apache.roller.weblogger.ui.core.security.CustomUserRegistry:getUserDetailsFromAuthentication(...)@249: Addr_Set{null}, Inverse{null}
        boolean usingSSO = WebloggerConfig.getBooleanProperty("users.sso.enabled");
    //#Register.java:246: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
        if(usingSSO) {
            boolean storePassword = WebloggerConfig.getBooleanProperty("users.sso.passwords.saveInRollerDb");
    //#Register.java:248: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
            User fromSSO = CustomUserRegistry.getUserDetailsFromAuthentication();
    //#Register.java:249: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.ui.core.security.CustomUserRegistry:getUserDetailsFromAuthentication()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: User org.apache.roller.weblogger.ui.core.security.CustomUserRegistry:getUserDetailsFromAuthentication()
            if(fromSSO != null) {
                String password = WebloggerConfig.getProperty("users.sso.passwords.defaultValue", "<unknown>");
    //#Register.java:251: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String, String)
                if(storePassword) {
                    password = fromSSO.getPassword();
    //#Register.java:253: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.User:getPassword()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.User:getPassword()
                }
                getBean().setPasswordText(password);
                getBean().setPasswordConfirm(password);
                getBean().setUserName(fromSSO.getUserName());
    //#Register.java:257: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.User:getUserName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.User:getUserName()
                setFromSS0(true);
            }
        }
        
        String allowed = WebloggerConfig.getProperty("username.allowedChars");
    //#Register.java:262: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: String org.apache.roller.weblogger.config.WebloggerConfig:getProperty(String)
        if(allowed == null || allowed.trim().length() == 0) {
            allowed = DEFAULT_ALLOWED_CHARS;
        }
        
        // check that username only contains safe characters
        String safe = CharSetUtils.keep(getBean().getUserName(), allowed);
    //#Register.java:268: Warning: method not available
    //#    -- call on String org.apache.commons.lang.CharSetUtils:keep(String, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: String org.apache.commons.lang.CharSetUtils:keep(String, String)
        if (!safe.equals(getBean().getUserName()) ) {
            addError("error.add.user.badUserName");
    //#Register.java:270: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
        }
        
        // check that passwords match
        if(!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
            addError("Register.error.passowordMismatch");
    //#Register.java:275: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
        }
        
        // check that username is not taken
        if(!StringUtils.isEmpty(getBean().getUserName())) try {
    //#Register.java:279: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
    //#Register.java:280: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#Register.java:280: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            if(mgr.getUserByUserName(getBean().getUserName(), null) != null) {
    //#Register.java:281: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
                addError("error.add.user.userNameInUse");
    //#Register.java:282: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
                // reset user name
                getBean().setUserName(null);
            }
        } catch (WebloggerException ex) {
            log.error("error checking for user", ex);
    //#Register.java:287: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("unexpected error");
    //#Register.java:289: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.core.Register
    //#    method: void myValidate()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.core.Register:addError(String)
        }
    }
    //#Register.java:291: end of method: void org.apache.roller.weblogger.ui.struts2.core.Register.myValidate()
    
    
    public HttpServletRequest getServletRequest() {
        return servletRequest;
    //#Register.java:295: method: HttpServletRequest org.apache.roller.weblogger.ui.struts2.core.Register.getServletRequest()
    //#input(HttpServletRequest getServletRequest()): this
    //#input(HttpServletRequest getServletRequest()): this.servletRequest
    //#output(HttpServletRequest getServletRequest()): return_value
    //#pre[2] (HttpServletRequest getServletRequest()): init'ed(this.servletRequest)
    //#post(HttpServletRequest getServletRequest()): return_value == this.servletRequest
    //#post(HttpServletRequest getServletRequest()): init'ed(return_value)
    //#Register.java:295: end of method: HttpServletRequest org.apache.roller.weblogger.ui.struts2.core.Register.getServletRequest()
    }

    public void setServletRequest(HttpServletRequest servletRequest) {
        this.servletRequest = servletRequest;
    //#Register.java:299: method: void org.apache.roller.weblogger.ui.struts2.core.Register.setServletRequest(HttpServletRequest)
    //#input(void setServletRequest(HttpServletRequest)): servletRequest
    //#input(void setServletRequest(HttpServletRequest)): this
    //#output(void setServletRequest(HttpServletRequest)): this.servletRequest
    //#post(void setServletRequest(HttpServletRequest)): this.servletRequest == servletRequest
    //#post(void setServletRequest(HttpServletRequest)): init'ed(this.servletRequest)
    }
    //#Register.java:300: end of method: void org.apache.roller.weblogger.ui.struts2.core.Register.setServletRequest(HttpServletRequest)
    
    public ProfileBean getBean() {
        return bean;
    //#Register.java:303: method: ProfileBean org.apache.roller.weblogger.ui.struts2.core.Register.getBean()
    //#input(ProfileBean getBean()): this
    //#input(ProfileBean getBean()): this.bean
    //#output(ProfileBean getBean()): return_value
    //#pre[2] (ProfileBean getBean()): init'ed(this.bean)
    //#post(ProfileBean getBean()): return_value == this.bean
    //#post(ProfileBean getBean()): init'ed(return_value)
    //#Register.java:303: end of method: ProfileBean org.apache.roller.weblogger.ui.struts2.core.Register.getBean()
    }

    public void setBean(ProfileBean bean) {
        this.bean = bean;
    //#Register.java:307: method: void org.apache.roller.weblogger.ui.struts2.core.Register.setBean(ProfileBean)
    //#input(void setBean(ProfileBean)): bean
    //#input(void setBean(ProfileBean)): this
    //#output(void setBean(ProfileBean)): this.bean
    //#post(void setBean(ProfileBean)): this.bean == bean
    //#post(void setBean(ProfileBean)): init'ed(this.bean)
    }
    //#Register.java:308: end of method: void org.apache.roller.weblogger.ui.struts2.core.Register.setBean(ProfileBean)

    public boolean isFromSS0() {
        return fromSS0;
    //#Register.java:311: method: bool org.apache.roller.weblogger.ui.struts2.core.Register.isFromSS0()
    //#input(bool isFromSS0()): this
    //#input(bool isFromSS0()): this.fromSS0
    //#output(bool isFromSS0()): return_value
    //#pre[2] (bool isFromSS0()): init'ed(this.fromSS0)
    //#post(bool isFromSS0()): return_value == this.fromSS0
    //#post(bool isFromSS0()): init'ed(return_value)
    //#Register.java:311: end of method: bool org.apache.roller.weblogger.ui.struts2.core.Register.isFromSS0()
    }

    public void setFromSS0(boolean fromSS0) {
        this.fromSS0 = fromSS0;
    //#Register.java:315: method: void org.apache.roller.weblogger.ui.struts2.core.Register.setFromSS0(bool)
    //#input(void setFromSS0(bool)): fromSS0
    //#input(void setFromSS0(bool)): this
    //#output(void setFromSS0(bool)): this.fromSS0
    //#post(void setFromSS0(bool)): this.fromSS0 == fromSS0
    //#post(void setFromSS0(bool)): init'ed(this.fromSS0)
    }
    //#Register.java:316: end of method: void org.apache.roller.weblogger.ui.struts2.core.Register.setFromSS0(bool)

    public String getActivationStatus() {
        return activationStatus;
    //#Register.java:319: method: String org.apache.roller.weblogger.ui.struts2.core.Register.getActivationStatus()
    //#input(String getActivationStatus()): this
    //#input(String getActivationStatus()): this.activationStatus
    //#output(String getActivationStatus()): return_value
    //#pre[2] (String getActivationStatus()): init'ed(this.activationStatus)
    //#post(String getActivationStatus()): return_value == this.activationStatus
    //#post(String getActivationStatus()): init'ed(return_value)
    //#Register.java:319: end of method: String org.apache.roller.weblogger.ui.struts2.core.Register.getActivationStatus()
    }

    public void setActivationStatus(String activationStatus) {
        this.activationStatus = activationStatus;
    //#Register.java:323: method: void org.apache.roller.weblogger.ui.struts2.core.Register.setActivationStatus(String)
    //#input(void setActivationStatus(String)): activationStatus
    //#input(void setActivationStatus(String)): this
    //#output(void setActivationStatus(String)): this.activationStatus
    //#post(void setActivationStatus(String)): this.activationStatus == activationStatus
    //#post(void setActivationStatus(String)): init'ed(this.activationStatus)
    }
    //#Register.java:324: end of method: void org.apache.roller.weblogger.ui.struts2.core.Register.setActivationStatus(String)

    public String getActivationCode() {
        return activationCode;
    //#Register.java:327: method: String org.apache.roller.weblogger.ui.struts2.core.Register.getActivationCode()
    //#input(String getActivationCode()): this
    //#input(String getActivationCode()): this.activationCode
    //#output(String getActivationCode()): return_value
    //#pre[2] (String getActivationCode()): init'ed(this.activationCode)
    //#post(String getActivationCode()): return_value == this.activationCode
    //#post(String getActivationCode()): init'ed(return_value)
    //#Register.java:327: end of method: String org.apache.roller.weblogger.ui.struts2.core.Register.getActivationCode()
    }

    public void setActivationCode(String activationCode) {
        this.activationCode = activationCode;
    //#Register.java:331: method: void org.apache.roller.weblogger.ui.struts2.core.Register.setActivationCode(String)
    //#input(void setActivationCode(String)): activationCode
    //#input(void setActivationCode(String)): this
    //#output(void setActivationCode(String)): this.activationCode
    //#post(void setActivationCode(String)): this.activationCode == activationCode
    //#post(void setActivationCode(String)): init'ed(this.activationCode)
    }
    //#Register.java:332: end of method: void org.apache.roller.weblogger.ui.struts2.core.Register.setActivationCode(String)
    
}
    //#Register.java:: end of class: org.apache.roller.weblogger.ui.struts2.core.Register
