//# 3 errors, 705 messages
//#
/*
    //#Handler.java:1:1: class: org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI
    //#Handler.java:1:1: class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
 * 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.webservices.adminprotocol;

import java.io.IOException;
import java.io.Reader;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.config.WebloggerConfig;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.webservices.adminprotocol.sdk.EntrySet;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.webservices.adminprotocol.sdk.UnexpectedRootElementException;
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

/**
 * This class is the abstract notion of an RAP request handler.
 * It processes HTTP requests for each of the four HTTP verbs:
 * GET, POST, PUT, DELETE, for a given weblog resource.
 */
abstract class Handler {
    protected static final String ENDPOINT = "/rap";
    
    static class URI {
        private static Pattern PATHINFO_PATTERN = Pattern.compile("^/(users|weblogs|members)(?:/(.*))?$");
    //#Handler.java:50: method: org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): PATHINFO_PATTERN
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI]
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.getEntryId()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.getType()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.isCollection()Z
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.isEntry()Z
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.isIntrospection()Z
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): init'ed(PATHINFO_PATTERN)
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.getEntryId()Ljava/lang/String; == &getEntryId
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.getType()Ljava/lang/String; == &getType
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.isCollection()Z == &isCollection
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.isEntry()Z == &isEntry
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init): __Dispatch_Table.isIntrospection()Z == &isIntrospection
    //#Handler.java:50: end of method: org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI__static_init
        
        private String type;
        private String entryId;
        
        public URI(HttpServletRequest request) throws BadRequestException {
    //#Handler.java:55: method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): "ERROR: Invalid path info: "._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): PATHINFO_PATTERN
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): request
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): this
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): this.entryId
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): this.type
    //#pre[2] (void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): request != null
    //#pre[1] (void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): (soft) PATHINFO_PATTERN != null
    //#presumption(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): java.util.regex.Matcher:matches(...)@63 == 1
    //#presumption(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): java.util.regex.Pattern:matcher(...)@62 != null
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): init'ed(this.entryId)
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): init'ed(this.type)
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): Effects-of-calling:java.lang.Exception
    //#test_vector(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): java.lang.String:length(...)@58: {1..4_294_967_295}, {0}
    //#test_vector(void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)): javax.servlet.http.HttpServletRequest:getPathInfo(...)@56: Addr_Set{null}, Inverse{null}
            String pi = request.getPathInfo();
            
            if (pi == null || pi.length() == 0) {
                type = null;
                entryId = null;
            } else {
                Matcher m = PATHINFO_PATTERN.matcher(pi);
                if (!m.matches()) {
                    throw new BadRequestException("ERROR: Invalid path info: " + pi);
                }
                
                type = m.group(1);
                entryId = m.group(2);
            }
        }
    //#Handler.java:70: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI(HttpServletRequest)
        
        public String getType() {
            return type;
    //#Handler.java:73: method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.getType()
    //#input(String getType()): this
    //#input(String getType()): this.type
    //#output(String getType()): return_value
    //#pre[2] (String getType()): init'ed(this.type)
    //#post(String getType()): return_value == this.type
    //#post(String getType()): init'ed(return_value)
    //#Handler.java:73: end of method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.getType()
        }
        
        public String getEntryId() {
            return entryId;
    //#Handler.java:77: method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.getEntryId()
    //#input(String getEntryId()): this
    //#input(String getEntryId()): this.entryId
    //#output(String getEntryId()): return_value
    //#pre[2] (String getEntryId()): init'ed(this.entryId)
    //#post(String getEntryId()): return_value == this.entryId
    //#post(String getEntryId()): init'ed(return_value)
    //#Handler.java:77: end of method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.getEntryId()
        }
        
        public boolean isIntrospection() {
            return getEntryId() == null && type == null;
    //#Handler.java:81: method: bool org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.isIntrospection()
    //#Handler.java:81: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI
    //#    method: bool isIntrospection()
    //#    suspicious precondition index: [5]
    //#input(bool isIntrospection()): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI]
    //#input(bool isIntrospection()): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI]
    //#input(bool isIntrospection()): __Descendant_Table[others]
    //#input(bool isIntrospection()): __Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(bool isIntrospection()): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI.__Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(bool isIntrospection()): this
    //#input(bool isIntrospection()): this.__Tag
    //#input(bool isIntrospection()): this.entryId
    //#input(bool isIntrospection()): this.type
    //#output(bool isIntrospection()): return_value
    //#pre[5] (bool isIntrospection()): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI, org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI}
    //#pre[6] (bool isIntrospection()): init'ed(this.entryId)
    //#pre[8] (bool isIntrospection()): (soft) init'ed(this.type)
    //#post(bool isIntrospection()): init'ed(return_value)
    //#Handler.java:81: end of method: bool org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.isIntrospection()
        }
        
        public boolean isCollection() {
            return getEntryId() == null && type != null;
    //#Handler.java:85: method: bool org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.isCollection()
    //#Handler.java:85: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI
    //#    method: bool isCollection()
    //#    suspicious precondition index: [5]
    //#input(bool isCollection()): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI]
    //#input(bool isCollection()): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI]
    //#input(bool isCollection()): __Descendant_Table[others]
    //#input(bool isCollection()): __Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(bool isCollection()): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI.__Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(bool isCollection()): this
    //#input(bool isCollection()): this.__Tag
    //#input(bool isCollection()): this.entryId
    //#input(bool isCollection()): this.type
    //#output(bool isCollection()): return_value
    //#pre[5] (bool isCollection()): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI, org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI}
    //#pre[6] (bool isCollection()): init'ed(this.entryId)
    //#pre[8] (bool isCollection()): (soft) init'ed(this.type)
    //#post(bool isCollection()): init'ed(return_value)
    //#Handler.java:85: end of method: bool org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.isCollection()
        }
        
        public boolean isEntry() {
            return getEntryId() != null && type != null;
    //#Handler.java:89: method: bool org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.isEntry()
    //#Handler.java:89: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI
    //#    method: bool isEntry()
    //#    suspicious precondition index: [6]
    //#input(bool isEntry()): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI]
    //#input(bool isEntry()): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI]
    //#input(bool isEntry()): __Descendant_Table[others]
    //#input(bool isEntry()): __Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(bool isEntry()): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI.__Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(bool isEntry()): this
    //#input(bool isEntry()): this.__Tag
    //#input(bool isEntry()): this.entryId
    //#input(bool isEntry()): this.type
    //#output(bool isEntry()): return_value
    //#pre[6] (bool isEntry()): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI, org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI}
    //#pre[7] (bool isEntry()): init'ed(this.entryId)
    //#pre[8] (bool isEntry()): (soft) init'ed(this.type)
    //#post(bool isEntry()): init'ed(return_value)
    //#Handler.java:89: end of method: bool org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI.isEntry()
        }
    }
    
    protected static final Log logger = LogFactory.getFactory().getInstance(Handler.class);
    //#Handler.java:93: method: org.apache.roller.weblogger.webservices.adminprotocol.Handler.org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init
    //#Handler.java:93: Warning: method not available
    //#    -- call on LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init
    //#    unanalyzed callee: LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#Handler.java:93: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler]
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getEntrySet(Ljava/io/Reader;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getEntrySet(Lorg/jdom/Document;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getRequest()Ljavax/servlet/http/HttpServletRequest;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUri()Lorg/apache/roller/weblogger/webservices/adminprotocol/Handler$URI;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUrlPrefix()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUserName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getWebsiteData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/Weblog;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processDelete()Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processGet()Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processPost(Ljava/io/Reader;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processPut(Ljava/io/Reader;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.setUserName(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): logger
    //#presumption(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): org.apache.commons.logging.LogFactory:getFactory(...)@93 != null
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getEntrySet(Ljava/io/Reader;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet; == &getEntrySet
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getEntrySet(Lorg/jdom/Document;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet; == &getEntrySet
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getRequest()Ljavax/servlet/http/HttpServletRequest; == &getRequest
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger; == &getRoller
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUri()Lorg/apache/roller/weblogger/webservices/adminprotocol/Handler$URI; == &getUri
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUrlPrefix()Ljava/lang/String; == &getUrlPrefix
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User; == &getUserData
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getUserName()Ljava/lang/String; == &getUserName
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.getWebsiteData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/Weblog; == &getWebsiteData
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processDelete()Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet; == &processDelete
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processGet()Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet; == &processGet
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processPost(Ljava/io/Reader;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet; == &processPost
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.processPut(Ljava/io/Reader;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet; == &processPut
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): __Dispatch_Table.setUserName(Ljava/lang/String;)V == &setUserName
    //#post(org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init): init'ed(logger)
    //#Handler.java:93: end of method: org.apache.roller.weblogger.webservices.adminprotocol.Handler.org.apache.roller.weblogger.webservices.adminprotocol.Handler__static_init
    
    private HttpServletRequest request;
    private Weblogger roller;
    private String userName;
    private URI uri;
    private String urlPrefix;
    
    /** Get a Handler object implementation based on the given request. */
    public static Handler getHandler(HttpServletRequest req) throws HandlerException {
        boolean enabled = WebloggerConfig.getBooleanProperty("webservices.adminprotocol.enabled");
    //#Handler.java:103: method: Handler org.apache.roller.weblogger.webservices.adminprotocol.Handler.getHandler(HttpServletRequest)
    //#Handler.java:103: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Handler getHandler(HttpServletRequest)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(String)
    //#input(Handler getHandler(HttpServletRequest)): ".rap"._tainted
    //#input(Handler getHandler(HttpServletRequest)): ".roller-services"._tainted
    //#input(Handler getHandler(HttpServletRequest)): "ERROR: Could not get user: "._tainted
    //#input(Handler getHandler(HttpServletRequest)): "ERROR: Invalid path info: "._tainted
    //#input(Handler getHandler(HttpServletRequest)): "ERROR: Unknown type: "._tainted
    //#input(Handler getHandler(HttpServletRequest)): "ERROR: Unknown user: "._tainted
    //#input(Handler getHandler(HttpServletRequest)): "ERROR: User is disabled: "._tainted
    //#input(Handler getHandler(HttpServletRequest)): "ERROR: User is not authorized: "._tainted
    //#input(Handler getHandler(HttpServletRequest)): "ERROR: User must have the admin role to use the RAP endpoint: "._tainted
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Authenticator]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Descendant_Table[others]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.authenticate()V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.getUserName()Ljava/lang/String;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java.lang.Boolean.FALSE
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java.lang.Boolean.TRUE
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Descendant_Table[others]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.authenticate()V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getRequest()Ljavax/servlet/http/HttpServletRequest;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getUserName()Ljava/lang/String;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setUserName(Ljava/lang/String;)V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.verifyUser(Ljava/lang/String;Ljava/lang/String;)V
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.PATHINFO_PATTERN
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Descendant_Table[others]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Dispatch_Table.getType()Ljava/lang/String;
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Dispatch_Table.isCollection()Z
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Dispatch_Table.isEntry()Z
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.__Dispatch_Table.isIntrospection()Z
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI.__Descendant_Table[others]
    //#input(Handler getHandler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI.__Dispatch_Table.getEntryId()Ljava/lang/String;
    //#input(Handler getHandler(HttpServletRequest)): req
    //#output(Handler getHandler(HttpServletRequest)): java.lang.String:substring(...)._tainted
    //#output(Handler getHandler(HttpServletRequest)): java.lang.StringBuilder:toString(...)._tainted
    //#output(Handler getHandler(HttpServletRequest)): new Handler$URI(Handler#1) num objects
    //#output(Handler getHandler(HttpServletRequest)): new Handler$URI(Handler#1).__Tag
    //#output(Handler getHandler(HttpServletRequest)): new Handler$URI(Handler#1).entryId
    //#output(Handler getHandler(HttpServletRequest)): new Handler$URI(Handler#1).type
    //#output(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2) num objects
    //#output(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).__Tag
    //#output(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).request
    //#output(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).roller
    //#output(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).uri
    //#output(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).urlPrefix
    //#output(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).userName
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1) num objects
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1).__Tag
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1).entryId
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1).handle
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1).type
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1).username
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5) num objects
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).__Tag
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).memberUri
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).request
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).roller
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).uri
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).urlPrefix
    //#output(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).userName
    //#output(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4) num objects
    //#output(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).__Tag
    //#output(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).request
    //#output(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).roller
    //#output(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).uri
    //#output(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).urlPrefix
    //#output(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).userName
    //#output(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3) num objects
    //#output(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).__Tag
    //#output(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).request
    //#output(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).roller
    //#output(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).uri
    //#output(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).urlPrefix
    //#output(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).userName
    //#output(Handler getHandler(HttpServletRequest)): return_value
    //#new obj(Handler getHandler(HttpServletRequest)): java.lang.String:substring(...)
    //#new obj(Handler getHandler(HttpServletRequest)): java.lang.StringBuilder:toString(...)
    //#new obj(Handler getHandler(HttpServletRequest)): new Handler$URI(Handler#1)
    //#new obj(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2)
    //#new obj(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1)
    //#new obj(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5)
    //#new obj(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4)
    //#new obj(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3)
    //#pre[2] (Handler getHandler(HttpServletRequest)): req != null
    //#pre[1] (Handler getHandler(HttpServletRequest)): (soft) org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.PATHINFO_PATTERN != null
    //#presumption(Handler getHandler(HttpServletRequest)): java.lang.String:equals(...)@119 == 1
    //#presumption(Handler getHandler(HttpServletRequest)): org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty(...)@103 == 1
    //#post(Handler getHandler(HttpServletRequest)): init'ed(java.lang.String:substring(...)._tainted)
    //#post(Handler getHandler(HttpServletRequest)): java.lang.StringBuilder:toString(...)._tainted == 0
    //#post(Handler getHandler(HttpServletRequest)): return_value in Addr_Set{&new RollerMemberHandler(getHandler#5),&new RollerUserHandler(getHandler#4),&new RollerWeblogHandler(getHandler#3),&new IntrospectionHandler(getHandler#2)}
    //#post(Handler getHandler(HttpServletRequest)): new Handler$URI(Handler#1) num objects == 1
    //#post(Handler getHandler(HttpServletRequest)): possibly_updated(new Handler$URI(Handler#1).__Tag)
    //#post(Handler getHandler(HttpServletRequest)): possibly_updated(new Handler$URI(Handler#1).entryId)
    //#post(Handler getHandler(HttpServletRequest)): possibly_updated(new Handler$URI(Handler#1).type)
    //#post(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2) num objects <= 1
    //#post(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).__Tag == org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler
    //#post(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).request == req
    //#post(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).request != null
    //#post(Handler getHandler(HttpServletRequest)): init'ed(new IntrospectionHandler(getHandler#2).roller)
    //#post(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).uri == &new Handler$URI(Handler#1)
    //#post(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).urlPrefix == &java.lang.StringBuilder:toString(...)
    //#post(Handler getHandler(HttpServletRequest)): new IntrospectionHandler(getHandler#2).userName in Addr_Set{null,&java.lang.String:substring(...)}
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1) num objects <= 1
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1).__Tag == org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler$MemberURI
    //#post(Handler getHandler(HttpServletRequest)): init'ed(new RollerMemberHandler$MemberURI(RollerMemberHandler#1).entryId)
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler$MemberURI(RollerMemberHandler#1).handle == null
    //#post(Handler getHandler(HttpServletRequest)): init'ed(new RollerMemberHandler$MemberURI(RollerMemberHandler#1).type)
    //#post(Handler getHandler(HttpServletRequest)): init'ed(new RollerMemberHandler$MemberURI(RollerMemberHandler#1).username)
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5) num objects <= 1
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).__Tag == org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).memberUri == &new RollerMemberHandler$MemberURI(RollerMemberHandler#1)
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).request == req
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).request != null
    //#post(Handler getHandler(HttpServletRequest)): init'ed(new RollerMemberHandler(getHandler#5).roller)
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).uri == &new Handler$URI(Handler#1)
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).urlPrefix == &java.lang.StringBuilder:toString(...)
    //#post(Handler getHandler(HttpServletRequest)): new RollerMemberHandler(getHandler#5).userName in Addr_Set{null,&java.lang.String:substring(...)}
    //#post(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4) num objects <= 1
    //#post(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).__Tag == org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler
    //#post(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).request == req
    //#post(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).request != null
    //#post(Handler getHandler(HttpServletRequest)): init'ed(new RollerUserHandler(getHandler#4).roller)
    //#post(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).uri == &new Handler$URI(Handler#1)
    //#post(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).urlPrefix == &java.lang.StringBuilder:toString(...)
    //#post(Handler getHandler(HttpServletRequest)): new RollerUserHandler(getHandler#4).userName in Addr_Set{null,&java.lang.String:substring(...)}
    //#post(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3) num objects <= 1
    //#post(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).__Tag == org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler
    //#post(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).request == req
    //#post(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).request != null
    //#post(Handler getHandler(HttpServletRequest)): init'ed(new RollerWeblogHandler(getHandler#3).roller)
    //#post(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).uri == &new Handler$URI(Handler#1)
    //#post(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).urlPrefix == &java.lang.StringBuilder:toString(...)
    //#post(Handler getHandler(HttpServletRequest)): new RollerWeblogHandler(getHandler#3).userName in Addr_Set{null,&java.lang.String:substring(...)}
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:javax.servlet.http.HttpServletRequest:getPathInfo
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.util.regex.Pattern:matcher
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.util.regex.Matcher:matches
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.util.regex.Matcher:group
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getAbsoluteContextURL
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:javax.servlet.http.HttpServletRequest:getHeader
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.util.StringTokenizer
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.util.StringTokenizer:hasMoreTokens
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.util.StringTokenizer:nextToken
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:equalsIgnoreCase
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:getBytes
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.commons.codec.binary.Base64:decodeBase64
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:getUserData
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getPassword
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getProperty
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.Boolean:valueOf
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.Boolean:booleanValue
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.util.Utilities:encodePassword
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getUserName
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:hasRole
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getEnabled
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getUserByUserName
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Handler getHandler(HttpServletRequest)): Effects-of-calling:authenticate
    //#test_vector(Handler getHandler(HttpServletRequest)): java.lang.String:equals(...)@115: {0}, {1}
    //#test_vector(Handler getHandler(HttpServletRequest)): java.lang.String:equals(...)@117: {0}, {1}
        if (!enabled) {
            throw new NotAllowedException("ERROR: Admin protocol not enabled");
        }
        
        URI uri = new URI(req);
        Handler handler;
        
        if (uri.isIntrospection()) {
            handler = new IntrospectionHandler(req);
        } else if (uri.isCollection() || uri.isEntry()) {
    //#Handler.java:113: ?org/apache/roller/weblogger/webservices/adminprotocol/BadRequestException check
    //#    isEntry(...) != 0
    //#    severity: MEDIUM
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Handler getHandler(HttpServletRequest)
    //#    basic block: bb_4
    //#    assertion: isEntry(...) != 0
    //#    VN: __Temp_Initially_1
    //#    Expected: {-Inf..-1, 1..+Inf}
    //#    Bad: {0}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Bad > Exp
            String type = uri.getType();
            if (type.equals(EntrySet.Types.WEBLOGS)) {
                handler = new RollerWeblogHandler(req);
            } else if (type.equals(EntrySet.Types.USERS)) {
                handler = new RollerUserHandler(req);
            } else if (type.equals(EntrySet.Types.MEMBERS)) {
                handler = new RollerMemberHandler(req);
            } else {
                throw new BadRequestException("ERROR: Unknown type: " + uri.getType());
            }
        } else {
            throw new BadRequestException("ERROR: Unknown URI type");
        }
        
        return handler;
    //#Handler.java:128: end of method: Handler org.apache.roller.weblogger.webservices.adminprotocol.Handler.getHandler(HttpServletRequest)
    }
    
    public Handler(HttpServletRequest request) throws HandlerException {
    //#Handler.java:131: method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler.org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): ".rap"._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): ".roller-services"._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): "ERROR: Could not get user: "._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): "ERROR: Invalid path info: "._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): "ERROR: Unknown user: "._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): "ERROR: User is disabled: "._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): "ERROR: User is not authorized: "._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): "ERROR: User must have the admin role to use the RAP endpoint: "._tainted
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Authenticator]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Descendant_Table[others]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.authenticate()V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.getUserName()Ljava/lang/String;
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.__Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java.lang.Boolean.FALSE
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java.lang.Boolean.TRUE
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Descendant_Table[others]
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.authenticate()V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getRequest()Ljavax/servlet/http/HttpServletRequest;
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getUserData(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/User;
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.getUserName()Ljava/lang/String;
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setRequest(Ljavax/servlet/http/HttpServletRequest;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setRoller(Lorg/apache/roller/weblogger/business/Weblogger;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.setUserName(Ljava/lang/String;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/BasicAuthenticator.__Dispatch_Table.verifyUser(Ljava/lang/String;Ljava/lang/String;)V
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.PATHINFO_PATTERN
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): request
    //#input(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): java.lang.String:substring(...)._tainted
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): java.lang.StringBuilder:toString(...)._tainted
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): new Handler$URI(Handler#1) num objects
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.uri.__Tag
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.uri.entryId
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.uri.type
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.request
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.roller
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.uri
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.urlPrefix
    //#output(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.userName
    //#new obj(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): java.lang.String:substring(...)
    //#new obj(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): java.lang.StringBuilder:toString(...)
    //#new obj(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): new Handler$URI(Handler#1)
    //#pre[2] (void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): request != null
    //#pre[1] (void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): (soft) org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI.PATHINFO_PATTERN != null
    //#presumption(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@40 != null
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): init'ed(java.lang.String:substring(...)._tainted)
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): java.lang.StringBuilder:toString(...)._tainted == 0
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.request == request
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.request != null
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): init'ed(this.roller)
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.uri == &new Handler$URI(Handler#1)
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.urlPrefix == &java.lang.StringBuilder:toString(...)
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.userName == One-of{null, &java.lang.String:substring(...)}
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.userName in Addr_Set{null,&java.lang.String:substring(...)}
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): new Handler$URI(Handler#1) num objects == 1
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): this.uri.__Tag == org/apache/roller/weblogger/webservices/adminprotocol/Handler$URI
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): init'ed(this.uri.entryId)
    //#post(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): init'ed(this.uri.type)
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:javax.servlet.http.HttpServletRequest:getPathInfo
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.util.regex.Pattern:matcher
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.util.regex.Matcher:matches
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.util.regex.Matcher:group
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:javax.servlet.http.HttpServletRequest:getHeader
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.util.StringTokenizer
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.util.StringTokenizer:hasMoreTokens
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.util.StringTokenizer:nextToken
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String:equalsIgnoreCase
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String:getBytes
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.commons.codec.binary.Base64:decodeBase64
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:getUserData
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getPassword
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getProperty
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.Boolean:valueOf
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.Boolean:booleanValue
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.util.Utilities:encodePassword
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getUserName
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:hasRole
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.pojos.User:getEnabled
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getUserByUserName
    //#unanalyzed(void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
        this.request = request;
        this.uri = new URI(request);
        this.roller = WebloggerFactory.getWeblogger();
    //#Handler.java:134: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
        //TODO: is this the right thing to do? hardcode roller-services?
        this.urlPrefix = WebloggerRuntimeConfig.getAbsoluteContextURL() + "/roller-services" + ENDPOINT;
    //#Handler.java:136: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getAbsoluteContextURL()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)
    //#    unanalyzed callee: String org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getAbsoluteContextURL()
        
        // TODO: decide what to do about authentication, is WSSE going to fly?
        //Authenticator auth = new WSSEAuthenticator(request);
        Authenticator auth = new BasicAuthenticator(request);
        auth.authenticate();
        setUserName(auth.getUserName());
    }
    //#Handler.java:143: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler.org.apache.roller.weblogger.webservices.adminprotocol.Handler(HttpServletRequest)
    
    /**
     * Get the authenticated user name.
     * If this method returns null, then authentication has failed.
     */
    public String getUserName() {
        return userName;
    //#Handler.java:150: method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUserName()
    //#input(String getUserName()): this
    //#input(String getUserName()): this.userName
    //#output(String getUserName()): return_value
    //#pre[2] (String getUserName()): init'ed(this.userName)
    //#post(String getUserName()): return_value == this.userName
    //#post(String getUserName()): init'ed(return_value)
    //#Handler.java:150: end of method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUserName()
    }
    
    private void setUserName(String userName) {
        this.userName = userName;
    //#Handler.java:154: method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler.setUserName(String)
    //#input(void setUserName(String)): this
    //#input(void setUserName(String)): userName
    //#output(void setUserName(String)): this.userName
    //#post(void setUserName(String)): this.userName == userName
    //#post(void setUserName(String)): init'ed(this.userName)
    }
    //#Handler.java:155: end of method: void org.apache.roller.weblogger.webservices.adminprotocol.Handler.setUserName(String)
    
    /** Process an HTTP GET request. */
    public abstract EntrySet processGet() throws HandlerException;
    /** Process an HTTP POST request. */
    public abstract EntrySet processPost(Reader r) throws HandlerException;
    /** Process an HTTP PUT request. */
    public abstract EntrySet processPut(Reader r) throws HandlerException;
    /** Process an HTTP DELETE request. */
    public abstract EntrySet processDelete() throws HandlerException;
    
    protected URI getUri() {
        return uri;
    //#Handler.java:167: method: Handler$URI org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUri()
    //#input(Handler$URI getUri()): this
    //#input(Handler$URI getUri()): this.uri
    //#output(Handler$URI getUri()): return_value
    //#pre[2] (Handler$URI getUri()): init'ed(this.uri)
    //#post(Handler$URI getUri()): return_value == this.uri
    //#post(Handler$URI getUri()): init'ed(return_value)
    //#Handler.java:167: end of method: Handler$URI org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUri()
    }
    
    protected HttpServletRequest getRequest() {
        return request;
    //#Handler.java:171: method: HttpServletRequest org.apache.roller.weblogger.webservices.adminprotocol.Handler.getRequest()
    //#input(HttpServletRequest getRequest()): this
    //#input(HttpServletRequest getRequest()): this.request
    //#output(HttpServletRequest getRequest()): return_value
    //#pre[2] (HttpServletRequest getRequest()): init'ed(this.request)
    //#post(HttpServletRequest getRequest()): return_value == this.request
    //#post(HttpServletRequest getRequest()): init'ed(return_value)
    //#Handler.java:171: end of method: HttpServletRequest org.apache.roller.weblogger.webservices.adminprotocol.Handler.getRequest()
    }
    
    protected Weblogger getRoller() {
        return roller;
    //#Handler.java:175: method: Weblogger org.apache.roller.weblogger.webservices.adminprotocol.Handler.getRoller()
    //#input(Weblogger getRoller()): this
    //#input(Weblogger getRoller()): this.roller
    //#output(Weblogger getRoller()): return_value
    //#pre[2] (Weblogger getRoller()): init'ed(this.roller)
    //#post(Weblogger getRoller()): return_value == this.roller
    //#post(Weblogger getRoller()): init'ed(return_value)
    //#Handler.java:175: end of method: Weblogger org.apache.roller.weblogger.webservices.adminprotocol.Handler.getRoller()
    }
    
    protected String getUrlPrefix() {
        return urlPrefix;
    //#Handler.java:179: method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUrlPrefix()
    //#input(String getUrlPrefix()): this
    //#input(String getUrlPrefix()): this.urlPrefix
    //#output(String getUrlPrefix()): return_value
    //#pre[2] (String getUrlPrefix()): init'ed(this.urlPrefix)
    //#post(String getUrlPrefix()): return_value == this.urlPrefix
    //#post(String getUrlPrefix()): init'ed(return_value)
    //#Handler.java:179: end of method: String org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUrlPrefix()
    }
    
    protected abstract EntrySet getEntrySet(Document d) throws UnexpectedRootElementException;
    
    protected EntrySet getEntrySet(Reader r) throws HandlerException {
        try {
            SAXBuilder builder = new SAXBuilder();
    //#Handler.java:186: method: EntrySet org.apache.roller.weblogger.webservices.adminprotocol.Handler.getEntrySet(Reader)
    //#Handler.java:186: Warning: method not available
    //#    -- call on void org.jdom.input.SAXBuilder()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: EntrySet getEntrySet(Reader)
    //#    unanalyzed callee: void org.jdom.input.SAXBuilder()
    //#Handler.java:186: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: EntrySet getEntrySet(Reader)
    //#    suspicious precondition index: [3]
    //#input(EntrySet getEntrySet(Reader)): "."._tainted
    //#input(EntrySet getEntrySet(Reader)): "invalid locale string: "._tainted
    //#input(EntrySet getEntrySet(Reader)): "members"._tainted
    //#input(EntrySet getEntrySet(Reader)): "users"._tainted
    //#input(EntrySet getEntrySet(Reader)): "weblogs"._tainted
    //#input(EntrySet getEntrySet(Reader)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler]
    //#input(EntrySet getEntrySet(Reader)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler]
    //#input(EntrySet getEntrySet(Reader)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler]
    //#input(EntrySet getEntrySet(Reader)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler]
    //#input(EntrySet getEntrySet(Reader)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler]
    //#input(EntrySet getEntrySet(Reader)): __Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): __Dispatch_Table.getEntrySet(Lorg/jdom/Document;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler.__Dispatch_Table.getEntrySet(Lorg/jdom/Document;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler.__Dispatch_Table.getEntrySet(Lorg/jdom/Document;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler.__Dispatch_Table.getUrlPrefix()Ljava/lang/String;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler.__Dispatch_Table.getEntrySet(Lorg/jdom/Document;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler.__Dispatch_Table.getUrlPrefix()Ljava/lang/String;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler.__Dispatch_Table.getEntrySet(Lorg/jdom/Document;)Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/EntrySet;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler.__Dispatch_Table.getUrlPrefix()Ljava/lang/String;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/Entry.NAMESPACE
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/LocaleString.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/sdk/LocaleString]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/LocaleString.__Dispatch_Table.getLocale()Ljava/util/Locale;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Dispatch_Table.getHandle()Ljava/lang/String;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Dispatch_Table.setHandle(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Dispatch_Table.setHref(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntry.__Dispatch_Table.setPermission(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntrySet.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntrySet]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntrySet.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntrySet.__Dispatch_Table.setEntries([Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/Entry;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/MemberEntrySet.__Dispatch_Table.setHref(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setDateCreated(Ljava/util/Date;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setEmailAddress(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setEnabled(Ljava/lang/Boolean;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setFullName(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setHref(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setLocale(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setPassword(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setScreenName(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntry.__Dispatch_Table.setTimezone(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntrySet.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntrySet]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntrySet.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntrySet.__Dispatch_Table.setEntries([Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/Entry;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/UserEntrySet.__Dispatch_Table.setHref(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.getHandle()Ljava/lang/String;
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setAppEntriesUrl(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setAppResourcesUrl(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setCreatingUser(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setDateCreated(Ljava/util/Date;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setDescription(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setEmailAddress(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setEnabled(Ljava/lang/Boolean;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setHandle(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setHref(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setLocale(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntry.__Dispatch_Table.setTimezone(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntrySet.__Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntrySet]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntrySet.__Descendant_Table[others]
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntrySet.__Dispatch_Table.setEntries([Lorg/apache/roller/weblogger/webservices/adminprotocol/sdk/Entry;)V
    //#input(EntrySet getEntrySet(Reader)): org/apache/roller/weblogger/webservices/adminprotocol/sdk/WeblogEntrySet.__Dispatch_Table.setHref(Ljava/lang/String;)V
    //#input(EntrySet getEntrySet(Reader)): r
    //#input(EntrySet getEntrySet(Reader)): this
    //#input(EntrySet getEntrySet(Reader)): this.__Tag
    //#input(EntrySet getEntrySet(Reader)): this.urlPrefix._tainted
    //#output(EntrySet getEntrySet(Reader)): java.lang.StringBuilder:toString(...)._tainted
    //#output(EntrySet getEntrySet(Reader)): new MemberEntrySet(getEntrySet#1*) num objects
    //#output(EntrySet getEntrySet(Reader)): new MemberEntrySet(getEntrySet#1*).__Tag
    //#output(EntrySet getEntrySet(Reader)): new MemberEntrySet(getEntrySet#1*).entries
    //#output(EntrySet getEntrySet(Reader)): new MemberEntrySet(getEntrySet#1*).href
    //#output(EntrySet getEntrySet(Reader)): new UserEntrySet(getEntrySet#1*) num objects
    //#output(EntrySet getEntrySet(Reader)): new UserEntrySet(getEntrySet#1*).__Tag
    //#output(EntrySet getEntrySet(Reader)): new UserEntrySet(getEntrySet#1*).entries
    //#output(EntrySet getEntrySet(Reader)): new UserEntrySet(getEntrySet#1*).href
    //#output(EntrySet getEntrySet(Reader)): new WeblogEntrySet(getEntrySet#1*) num objects
    //#output(EntrySet getEntrySet(Reader)): new WeblogEntrySet(getEntrySet#1*).__Tag
    //#output(EntrySet getEntrySet(Reader)): new WeblogEntrySet(getEntrySet#1*).entries
    //#output(EntrySet getEntrySet(Reader)): new WeblogEntrySet(getEntrySet#1*).href
    //#output(EntrySet getEntrySet(Reader)): return_value
    //#new obj(EntrySet getEntrySet(Reader)): java.lang.StringBuilder:toString(...)
    //#new obj(EntrySet getEntrySet(Reader)): new MemberEntrySet(getEntrySet#1*)
    //#new obj(EntrySet getEntrySet(Reader)): new UserEntrySet(getEntrySet#1*)
    //#new obj(EntrySet getEntrySet(Reader)): new WeblogEntrySet(getEntrySet#1*)
    //#pre[3] (EntrySet getEntrySet(Reader)): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Handler, org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler}
    //#post(EntrySet getEntrySet(Reader)): init'ed(java.lang.StringBuilder:toString(...)._tainted)
    //#post(EntrySet getEntrySet(Reader)): init'ed(return_value)
    //#post(EntrySet getEntrySet(Reader)): new MemberEntrySet(getEntrySet#1*) num objects <= 1
    //#post(EntrySet getEntrySet(Reader)): init'ed(new MemberEntrySet(getEntrySet#1*).__Tag)
    //#post(EntrySet getEntrySet(Reader)): init'ed(new MemberEntrySet(getEntrySet#1*).entries)
    //#post(EntrySet getEntrySet(Reader)): init'ed(new MemberEntrySet(getEntrySet#1*).href)
    //#post(EntrySet getEntrySet(Reader)): new UserEntrySet(getEntrySet#1*) num objects <= 1
    //#post(EntrySet getEntrySet(Reader)): init'ed(new UserEntrySet(getEntrySet#1*).__Tag)
    //#post(EntrySet getEntrySet(Reader)): init'ed(new UserEntrySet(getEntrySet#1*).entries)
    //#post(EntrySet getEntrySet(Reader)): init'ed(new UserEntrySet(getEntrySet#1*).href)
    //#post(EntrySet getEntrySet(Reader)): new WeblogEntrySet(getEntrySet#1*) num objects <= 1
    //#post(EntrySet getEntrySet(Reader)): init'ed(new WeblogEntrySet(getEntrySet#1*).__Tag)
    //#post(EntrySet getEntrySet(Reader)): init'ed(new WeblogEntrySet(getEntrySet#1*).entries)
    //#post(EntrySet getEntrySet(Reader)): init'ed(new WeblogEntrySet(getEntrySet#1*).href)
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:getUrlPrefix
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.sdk.EntrySet
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.Arrays:asList
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:setEntries
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.jdom.Document:getRootElement
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.jdom.Element:getName
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.jdom.Element:getChildren
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.jdom.Element:getChild
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.jdom.Element:getText
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.List:add
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:setHref
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.sdk.Entry
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.Locale
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.TimeZone:getTimeZone
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.Long:valueOf
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.Long:longValue
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.util.Date
    //#unanalyzed(EntrySet getEntrySet(Reader)): Effects-of-calling:java.lang.Boolean:valueOf
            Document d = builder.build(r);
    //#Handler.java:187: Warning: method not available
    //#    -- call on Document org.jdom.input.SAXBuilder:build(Reader)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: EntrySet getEntrySet(Reader)
    //#    unanalyzed callee: Document org.jdom.input.SAXBuilder:build(Reader)
            EntrySet c = getEntrySet(d);
            
            return c;
        } catch (UnexpectedRootElementException ure) {
            throw new BadRequestException("ERROR: Failed to parse content", ure);            
        } catch (JDOMException jde) {
            throw new BadRequestException("ERROR: Failed to parse content", jde);
        } catch (IOException ioe) {
            throw new InternalException("ERROR: Failed to parse content", ioe);
    //#Handler.java:196: end of method: EntrySet org.apache.roller.weblogger.webservices.adminprotocol.Handler.getEntrySet(Reader)
        }
    }
    
    protected Weblog getWebsiteData(String handle) throws NotFoundException, InternalException {
        try {
            Weblog wd = getRoller().getUserManager().getWebsiteByHandle(handle, Boolean.TRUE);
    //#Handler.java:202: method: Weblog org.apache.roller.weblogger.webservices.adminprotocol.Handler.getWebsiteData(String)
    //#Handler.java:202: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Weblog getWebsiteData(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#Handler.java:202: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Weblog getWebsiteData(String)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String, Boolean)
    //#Handler.java:202: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Weblog getWebsiteData(String)
    //#    suspicious precondition index: [4]
    //#input(Weblog getWebsiteData(String)): "ERROR: Could not get weblog: "._tainted
    //#input(Weblog getWebsiteData(String)): "ERROR: Unknown weblog handle: "._tainted
    //#input(Weblog getWebsiteData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler]
    //#input(Weblog getWebsiteData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler]
    //#input(Weblog getWebsiteData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler]
    //#input(Weblog getWebsiteData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler]
    //#input(Weblog getWebsiteData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler]
    //#input(Weblog getWebsiteData(String)): __Descendant_Table[others]
    //#input(Weblog getWebsiteData(String)): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(Weblog getWebsiteData(String)): handle
    //#input(Weblog getWebsiteData(String)): handle._tainted
    //#input(Weblog getWebsiteData(String)): java.lang.Boolean.FALSE
    //#input(Weblog getWebsiteData(String)): java.lang.Boolean.TRUE
    //#input(Weblog getWebsiteData(String)): org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(Weblog getWebsiteData(String)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(Weblog getWebsiteData(String)): org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(Weblog getWebsiteData(String)): org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(Weblog getWebsiteData(String)): this
    //#input(Weblog getWebsiteData(String)): this.__Tag
    //#input(Weblog getWebsiteData(String)): this.roller
    //#output(Weblog getWebsiteData(String)): return_value
    //#pre[4] (Weblog getWebsiteData(String)): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Handler, org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler}
    //#pre[5] (Weblog getWebsiteData(String)): this.roller != null
    //#presumption(Weblog getWebsiteData(String)): init'ed(java.lang.Boolean.FALSE)
    //#presumption(Weblog getWebsiteData(String)): init'ed(java.lang.Boolean.TRUE)
    //#presumption(Weblog getWebsiteData(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@202 != null
    //#presumption(Weblog getWebsiteData(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@204 != null
    //#post(Weblog getWebsiteData(String)): return_value != null
    //#unanalyzed(Weblog getWebsiteData(String)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(Weblog getWebsiteData(String)): Effects-of-calling:java.lang.Exception
    //#test_vector(Weblog getWebsiteData(String)): org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(...)@202: Inverse{null}, Addr_Set{null}
            if (wd == null) {
                wd = getRoller().getUserManager().getWebsiteByHandle(handle, Boolean.FALSE);
    //#Handler.java:204: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Weblog getWebsiteData(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#Handler.java:204: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Weblog getWebsiteData(String)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String, Boolean)
            }
            if (wd == null) {
                throw new NotFoundException("ERROR: Unknown weblog handle: " + handle);
    //#Handler.java:207: ?conditional throw
    //#    wd != null
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: Weblog getWebsiteData(String)
    //#    basic block: bb_4
    //#    assertion: wd != null
    //#    VN: wd == null
    //#    Expected: {0}
    //#    Bad: {1}
    //#    Attribs:  Int  Exp in +/-1000  Exp singleton  Bad singleton  Bad overlaps +/-1000  Bad > Exp
            }
            
            return wd;
        } catch (WebloggerException re) {
            throw new InternalException("ERROR: Could not get weblog: " + handle, re);
    //#Handler.java:212: end of method: Weblog org.apache.roller.weblogger.webservices.adminprotocol.Handler.getWebsiteData(String)
        }
    }

    protected User getUserData(String name) throws NotFoundException, InternalException {
        try {
            UserManager mgr = getRoller().getUserManager();
    //#Handler.java:218: method: User org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUserData(String)
    //#Handler.java:218: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: User getUserData(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#Handler.java:218: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: User getUserData(String)
    //#    suspicious precondition index: [4]
    //#input(User getUserData(String)): "ERROR: Could not get user: "._tainted
    //#input(User getUserData(String)): "ERROR: Unknown user: "._tainted
    //#input(User getUserData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/Handler]
    //#input(User getUserData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler]
    //#input(User getUserData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler]
    //#input(User getUserData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler]
    //#input(User getUserData(String)): __Descendant_Table[org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler]
    //#input(User getUserData(String)): __Descendant_Table[others]
    //#input(User getUserData(String)): __Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(User getUserData(String)): java.lang.Boolean.FALSE
    //#input(User getUserData(String)): java.lang.Boolean.TRUE
    //#input(User getUserData(String)): name
    //#input(User getUserData(String)): name._tainted
    //#input(User getUserData(String)): org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(User getUserData(String)): org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(User getUserData(String)): org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(User getUserData(String)): org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler.__Dispatch_Table.getRoller()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(User getUserData(String)): this
    //#input(User getUserData(String)): this.__Tag
    //#input(User getUserData(String)): this.roller
    //#output(User getUserData(String)): return_value
    //#pre[4] (User getUserData(String)): this.__Tag in {org/apache/roller/weblogger/webservices/adminprotocol/Handler, org/apache/roller/weblogger/webservices/adminprotocol/IntrospectionHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerMemberHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerUserHandler, org/apache/roller/weblogger/webservices/adminprotocol/RollerWeblogHandler}
    //#pre[5] (User getUserData(String)): this.roller != null
    //#presumption(User getUserData(String)): init'ed(java.lang.Boolean.FALSE)
    //#presumption(User getUserData(String)): init'ed(java.lang.Boolean.TRUE)
    //#presumption(User getUserData(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@218 != null
    //#post(User getUserData(String)): return_value != null
    //#unanalyzed(User getUserData(String)): Effects-of-calling:org.apache.roller.weblogger.webservices.adminprotocol.HandlerException
    //#unanalyzed(User getUserData(String)): Effects-of-calling:java.lang.Exception
    //#test_vector(User getUserData(String)): org.apache.roller.weblogger.business.UserManager:getUserByUserName(...)@219: Inverse{null}, Addr_Set{null}
            User ud = mgr.getUserByUserName(name, Boolean.TRUE);
    //#Handler.java:219: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: User getUserData(String)
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
            if (ud == null) {
                ud = mgr.getUserByUserName(name, Boolean.FALSE);
    //#Handler.java:221: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: User getUserData(String)
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
            }
            if (ud == null) {
                throw new NotFoundException("ERROR: Unknown user: " + name);
    //#Handler.java:224: ?conditional throw
    //#    ud != null
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
    //#    method: User getUserData(String)
    //#    basic block: bb_4
    //#    assertion: ud != null
    //#    VN: ud == null
    //#    Expected: {0}
    //#    Bad: {1}
    //#    Attribs:  Int  Exp in +/-1000  Exp singleton  Bad singleton  Bad overlaps +/-1000  Bad > Exp
            }
            
            return ud;
        } catch (WebloggerException re) {
            throw new InternalException("ERROR: Could not get user: " + name, re);
    //#Handler.java:229: end of method: User org.apache.roller.weblogger.webservices.adminprotocol.Handler.getUserData(String)
        }
    }
    
}

    //#Handler.java:: end of class: org.apache.roller.weblogger.webservices.adminprotocol.Handler$URI
    //#Handler.java:: end of class: org.apache.roller.weblogger.webservices.adminprotocol.Handler
