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

package org.apache.roller.weblogger.ui.rendering.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.config.WebloggerConfig;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.WeblogCategory;
import org.apache.roller.weblogger.util.URLUtilities;
import org.apache.roller.weblogger.util.Utilities;


/**
 * Represents a request for a Roller weblog feed.
 * 
 * /roller-ui/rendering/feeds/*
 *
 * We use this class as a helper to parse an incoming url and sort out the
 * information embedded in the url for later use.
 */
public class WeblogFeedRequest extends WeblogRequest {
    
    private static Log log = LogFactory.getLog(WeblogFeedRequest.class);
    //#WeblogFeedRequest.java:49: method: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init
    //#WeblogFeedRequest.java:49: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest]
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getAuthenticUser()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getFormat()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getLocale()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getLocaleInstance()Ljava/util/Locale;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getPage()I
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getPathInfo()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getTags()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getTerm()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getType()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getUser()Lorg/apache/roller/weblogger/pojos/User;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblog()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblogCategory()Lorg/apache/roller/weblogger/pojos/WeblogCategory;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblogCategoryName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblogHandle()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.isExcerpts()Z
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.isLoggedIn()Z
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setAuthenticUser(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setExcerpts(Z)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setFormat(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setLocale(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setLocaleInstance(Ljava/util/Locale;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setPage(I)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setPathInfo(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setTags(Ljava/util/List;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setTerm(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setType(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setUser(Lorg/apache/roller/weblogger/pojos/User;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblog(Lorg/apache/roller/weblogger/pojos/Weblog;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblogCategory(Lorg/apache/roller/weblogger/pojos/WeblogCategory;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblogCategoryName(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblogHandle(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): log
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): org/apache/roller/weblogger/ui/rendering/util/ParsedRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest]
    //#output(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest]
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): org/apache/roller/weblogger/ui/rendering/util/ParsedRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getAuthenticUser()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/util/ParsedRequest.getAuthenticUser
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getFormat()Ljava/lang/String; == &getFormat
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getLocale()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.getLocale
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getLocaleInstance()Ljava/util/Locale; == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.getLocaleInstance
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getPage()I == &getPage
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getPathInfo()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.getPathInfo
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getTags()Ljava/util/List; == &getTags
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getTerm()Ljava/lang/String; == &getTerm
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getType()Ljava/lang/String; == &getType
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getUser()Lorg/apache/roller/weblogger/pojos/User; == &org/apache/roller/weblogger/ui/rendering/util/ParsedRequest.getUser
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblog()Lorg/apache/roller/weblogger/pojos/Weblog; == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.getWeblog
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblogCategory()Lorg/apache/roller/weblogger/pojos/WeblogCategory; == &getWeblogCategory
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblogCategoryName()Ljava/lang/String; == &getWeblogCategoryName
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.getWeblogHandle()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.getWeblogHandle
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.isExcerpts()Z == &isExcerpts
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.isLocale(Ljava/lang/String;)Z == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.isLocale
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.isLoggedIn()Z == &org/apache/roller/weblogger/ui/rendering/util/ParsedRequest.isLoggedIn
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setAuthenticUser(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/rendering/util/ParsedRequest.setAuthenticUser
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setExcerpts(Z)V == &setExcerpts
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setFormat(Ljava/lang/String;)V == &setFormat
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setLocale(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.setLocale
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setLocaleInstance(Ljava/util/Locale;)V == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.setLocaleInstance
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setPage(I)V == &setPage
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setPathInfo(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.setPathInfo
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setTags(Ljava/util/List;)V == &setTags
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setTerm(Ljava/lang/String;)V == &setTerm
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setType(Ljava/lang/String;)V == &setType
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setUser(Lorg/apache/roller/weblogger/pojos/User;)V == &org/apache/roller/weblogger/ui/rendering/util/ParsedRequest.setUser
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblog(Lorg/apache/roller/weblogger/pojos/Weblog;)V == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.setWeblog
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblogCategory(Lorg/apache/roller/weblogger/pojos/WeblogCategory;)V == &setWeblogCategory
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblogCategoryName(Ljava/lang/String;)V == &setWeblogCategoryName
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): __Dispatch_Table.setWeblogHandle(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.setWeblogHandle
    //#post(org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init): init'ed(log)
    //#WeblogFeedRequest.java:49: end of method: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest__static_init
    
    private static final String FEED_SERVLET = "/roller-ui/rendering/feed";
    
    // lightweight attributes
    private String type = null;
    private String format = null;
    private String weblogCategoryName = null;
    private List   tags = null;
    private int    page = 0;
    private boolean excerpts = false;
    private String term = null;
    
    // heavyweight attributes
    private WeblogCategory weblogCategory = null;
    
    
    public WeblogFeedRequest() {}
    //#WeblogFeedRequest.java:66: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.authenticUser
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.excerpts
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.format
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.locale
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.localeInstance
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.page
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.pathInfo
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.request
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.tags
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.term
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.type
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.user
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblog
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblogCategory
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblogCategoryName
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblogHandle
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.authenticUser == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.format == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.locale == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.localeInstance == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.pathInfo == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.request == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.tags == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.term == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.type == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.user == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblog == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblogCategory == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblogCategoryName == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.weblogHandle == null
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.excerpts == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): this.page == 0
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.ParsedRequest
    //#WeblogFeedRequest.java:66: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest()
    
    
    /**
     * Construct the WeblogFeedRequest by parsing the incoming url
     */
    public WeblogFeedRequest(HttpServletRequest request) 
            throws InvalidRequestException {
        
        // let our parent take care of their business first
        // parent determines weblog handle and locale if specified
        super(request);
    //#WeblogFeedRequest.java:77: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#WeblogFeedRequest.java:77: ?check always fails: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest) always ends with an exception
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): ", "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "."._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "excerpts = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "format = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "handle = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "invalid feed path info, "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "locale = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "max number of tags allowed is "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "not a weblog feed request, "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "not a weblog request, "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "parsing path "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "pathInfo = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "please specify either category or tags but not both, "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "tags = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "type = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): "weblogCategory = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): __Descendant_Table[others]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): __Dispatch_Table.getPathInfo()Ljava/lang/String;
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): __Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): log
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogSearchRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Descendant_Table[others]
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.log
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogSearchRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.__Dispatch_Table.isLocale(Ljava/lang/String;)Z
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): request
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this
    //#input(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.__Tag
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): java.lang.String:substring(...)._tainted
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): java.lang.StringBuilder:toString(...)._tainted
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.__Tag
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.authenticUser
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.excerpts
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.format
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.locale
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.localeInstance
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.page
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.pathInfo
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.request
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.tags
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.term
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.type
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.user
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.weblog
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.weblogCategory
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.weblogCategoryName
    //#output(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): this.weblogHandle
    //#new obj(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): java.lang.String:substring(...)
    //#new obj(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): java.lang.StringBuilder:toString(...)
    //#pre[1] (void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): (soft) log != null
    //#pre[2] (void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): (soft) this.__Tag == org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest
    //#pre[3] (void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): (soft) org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.log != null
    //#pre[4] (void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): (soft) request != null
    //#presumption(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): java.lang.String:equals(...)@88 == 1
    //#presumption(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): java.lang.String:length(...)@101 >= 2
    //#presumption(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): javax.servlet.http.HttpServletRequest:getServletPath(...)@79 != null
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.WebloggerException
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.ParsedRequest
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:javax.servlet.http.HttpServletRequest:getPathInfo
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.lang.String:endsWith
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:org.apache.commons.logging.Log:isDebugEnabled
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:javax.servlet.http.HttpServletRequest:getRequestURL
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:javax.servlet.http.HttpServletRequest:getUserPrincipal
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)): Effects-of-calling:java.security.Principal:getName
        
        String servlet = request.getServletPath();
        
        // we only want the path info left over from after our parents parsing
        String pathInfo = this.getPathInfo();
        
        // parse the request object and figure out what we've got
        log.debug("parsing path "+pathInfo);
    //#WeblogFeedRequest.java:85: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
        
        // was this request bound for the feed servlet?
        if(servlet == null || !FEED_SERVLET.equals(servlet)) {
            throw new InvalidRequestException("not a weblog feed request, "+
                    request.getRequestURL());
        }
        
        
        /* 
         * parse the path info.
         * 
         * must look like this ...
         *
         * /<type>/<format>
         */
        if(pathInfo != null && pathInfo.trim().length() > 1) {
            
            String[] pathElements = pathInfo.split("/");
            if(pathElements.length == 2) {
    //#WeblogFeedRequest.java:104: ?use of default init
    //#    init'ed(pathElements.length)
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    basic block: bb_6
    //#    assertion: init'ed(pathElements.length)
    //#    VN: undefined
    //#    Expected: {-Inf..+Inf}
    //#    Bad: {Invalid}
    //#    Attribs:  Int  Bad only invalid
    //#WeblogFeedRequest.java:104: Warning: test always goes same way
    //#    test predetermined because pathElements.length == 0
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    from bb: bb_6
    //#    live edge: bb_6-->bb_8
    //#    tested vn: undefined - 2
    //#    tested vn values: {-2}
                this.type = pathElements[0];
    //#WeblogFeedRequest.java:105: Warning: dead code
    //#    dead code here because pathElements.length == 0
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_7
                this.format = pathElements[1];
            } else {
                throw new InvalidRequestException("invalid feed path info, "+
    //#WeblogFeedRequest.java:108: ?!conditional throw
    //#    pathElements.length == 2
    //#    severity: HIGH
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    basic block: bb_6
    //#    assertion: pathElements.length == 2
    //#    VN: undefined - 2
    //#    Expected: {0}
    //#    Bad: {-2}
    //#    Attribs:  Int  Exp in +/-1000  Exp singleton  Bad singleton  Bad overlaps +/-1000  Bad < Exp
                        request.getRequestURL());
            }
            
        } else {
    //#WeblogFeedRequest.java:112: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_9
            throw new InvalidRequestException("invalid feed path info, "+
    //#WeblogFeedRequest.java:113: ?conditional throw
    //#    pathInfo != null
    //#    severity: MEDIUM
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    basic block: bb_4
    //#    assertion: pathInfo != null
    //#    VN: this.pathInfo == null
    //#    Expected: {-Inf..0, 2..+Inf}
    //#    Bad: {1}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Bad > Exp
                    request.getRequestURL());
        }
        
        
        /* 
         * parse request parameters
         *
         * the only params we currently care about are:
         *   cat - specifies a weblog category
         *   excerpts - specifies the feed should only include excerpts
         *
         */
        if(request.getParameter("cat") != null) {
    //#WeblogFeedRequest.java:126: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_11
            this.weblogCategoryName =
    //#WeblogFeedRequest.java:127: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_12
                    URLUtilities.decode(request.getParameter("cat"));
            
            // all categories must start with a /
            if(!this.weblogCategoryName.startsWith("/")) {
                this.weblogCategoryName = "/"+this.weblogCategoryName;
    //#WeblogFeedRequest.java:132: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_13
            }
        }
        
        if(request.getParameter("tags") != null) {
    //#WeblogFeedRequest.java:136: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_14
            this.tags = Utilities.splitStringAsTags(request.getParameter("tags"));                  
    //#WeblogFeedRequest.java:137: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_15
            int maxSize = WebloggerConfig.getIntProperty("tags.queries.maxIntersectionSize", 3);
            if (this.tags.size() > maxSize)
                throw new InvalidRequestException("max number of tags allowed is " + maxSize + ", "
                                + request.getRequestURL());
        }        
        
        if(request.getParameter("excerpts") != null) {
    //#WeblogFeedRequest.java:144: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_17
            this.excerpts = Boolean.valueOf(request.getParameter("excerpts")).booleanValue();
    //#WeblogFeedRequest.java:145: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_18
        }
        
        if(request.getParameter("page") != null) {
    //#WeblogFeedRequest.java:148: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_19
            try {
                this.page = Integer.parseInt(request.getParameter("page"));
    //#WeblogFeedRequest.java:150: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_20
    //#WeblogFeedRequest.java:150: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_21
            } catch(NumberFormatException e) {
                // 
            }
        }     
        
        if(request.getParameter("q") != null &&
    //#WeblogFeedRequest.java:156: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_23
    //#WeblogFeedRequest.java:156: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_24
                request.getParameter("q").trim().length() > 0) {
            this.term = URLUtilities.decode(request.getParameter("q"));
    //#WeblogFeedRequest.java:158: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_25
        }        
        
        if((this.tags != null && this.tags.size() > 0) && this.weblogCategoryName != null) {
    //#WeblogFeedRequest.java:161: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_26
    //#WeblogFeedRequest.java:161: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_27
    //#WeblogFeedRequest.java:161: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_28
            throw new InvalidRequestException("please specify either category or tags but not both, " + request.getRequestURL());            
        }
        
        if(log.isDebugEnabled()) {
    //#WeblogFeedRequest.java:165: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_30
            log.debug("type = "+this.type);
    //#WeblogFeedRequest.java:166: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_31
            log.debug("format = "+this.format);
            log.debug("weblogCategory = "+this.weblogCategoryName);
            log.debug("tags = "+this.tags);
            log.debug("excerpts = "+this.excerpts);
        }
    }
    //#WeblogFeedRequest.java:172: Warning: dead code continues
    //#    dead code continues
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)
    //#    dead bb: bb_32
    //#WeblogFeedRequest.java:172: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest(HttpServletRequest)

    public String getType() {
        return type;
    //#WeblogFeedRequest.java:175: method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.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)
    //#WeblogFeedRequest.java:175: end of method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getType()
    }

    public void setType(String type) {
        this.type = type;
    //#WeblogFeedRequest.java:179: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setType(String)
    //#input(void setType(String)): this
    //#input(void setType(String)): type
    //#output(void setType(String)): this.type
    //#post(void setType(String)): this.type == type
    //#post(void setType(String)): init'ed(this.type)
    }
    //#WeblogFeedRequest.java:180: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setType(String)

    public String getFormat() {
        return format;
    //#WeblogFeedRequest.java:183: method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getFormat()
    //#input(String getFormat()): this
    //#input(String getFormat()): this.format
    //#output(String getFormat()): return_value
    //#pre[2] (String getFormat()): init'ed(this.format)
    //#post(String getFormat()): return_value == this.format
    //#post(String getFormat()): init'ed(return_value)
    //#WeblogFeedRequest.java:183: end of method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getFormat()
    }

    public void setFormat(String format) {
        this.format = format;
    //#WeblogFeedRequest.java:187: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setFormat(String)
    //#input(void setFormat(String)): format
    //#input(void setFormat(String)): this
    //#output(void setFormat(String)): this.format
    //#post(void setFormat(String)): this.format == format
    //#post(void setFormat(String)): init'ed(this.format)
    }
    //#WeblogFeedRequest.java:188: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setFormat(String)

    public String getWeblogCategoryName() {
        return weblogCategoryName;
    //#WeblogFeedRequest.java:191: method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getWeblogCategoryName()
    //#input(String getWeblogCategoryName()): this
    //#input(String getWeblogCategoryName()): this.weblogCategoryName
    //#output(String getWeblogCategoryName()): return_value
    //#pre[2] (String getWeblogCategoryName()): init'ed(this.weblogCategoryName)
    //#post(String getWeblogCategoryName()): return_value == this.weblogCategoryName
    //#post(String getWeblogCategoryName()): init'ed(return_value)
    //#WeblogFeedRequest.java:191: end of method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getWeblogCategoryName()
    }

    public void setWeblogCategoryName(String weblogCategory) {
        this.weblogCategoryName = weblogCategory;
    //#WeblogFeedRequest.java:195: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setWeblogCategoryName(String)
    //#input(void setWeblogCategoryName(String)): this
    //#input(void setWeblogCategoryName(String)): weblogCategory
    //#output(void setWeblogCategoryName(String)): this.weblogCategoryName
    //#post(void setWeblogCategoryName(String)): this.weblogCategoryName == weblogCategory
    //#post(void setWeblogCategoryName(String)): init'ed(this.weblogCategoryName)
    }
    //#WeblogFeedRequest.java:196: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setWeblogCategoryName(String)
    
    public List getTags() {
      return tags;
    //#WeblogFeedRequest.java:199: method: List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getTags()
    //#input(List getTags()): this
    //#input(List getTags()): this.tags
    //#output(List getTags()): return_value
    //#pre[2] (List getTags()): init'ed(this.tags)
    //#post(List getTags()): return_value == this.tags
    //#post(List getTags()): init'ed(return_value)
    //#WeblogFeedRequest.java:199: end of method: List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getTags()
    }

    public void setTags(List tags) {
      this.tags = tags;
    //#WeblogFeedRequest.java:203: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setTags(List)
    //#input(void setTags(List)): tags
    //#input(void setTags(List)): this
    //#output(void setTags(List)): this.tags
    //#post(void setTags(List)): this.tags == tags
    //#post(void setTags(List)): init'ed(this.tags)
    }
    //#WeblogFeedRequest.java:204: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setTags(List)

    public boolean isExcerpts() {
        return excerpts;
    //#WeblogFeedRequest.java:207: method: bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.isExcerpts()
    //#input(bool isExcerpts()): this
    //#input(bool isExcerpts()): this.excerpts
    //#output(bool isExcerpts()): return_value
    //#pre[2] (bool isExcerpts()): init'ed(this.excerpts)
    //#post(bool isExcerpts()): return_value == this.excerpts
    //#post(bool isExcerpts()): init'ed(return_value)
    //#WeblogFeedRequest.java:207: end of method: bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.isExcerpts()
    }

    public void setExcerpts(boolean excerpts) {
        this.excerpts = excerpts;
    //#WeblogFeedRequest.java:211: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setExcerpts(bool)
    //#input(void setExcerpts(bool)): excerpts
    //#input(void setExcerpts(bool)): this
    //#output(void setExcerpts(bool)): this.excerpts
    //#post(void setExcerpts(bool)): this.excerpts == excerpts
    //#post(void setExcerpts(bool)): init'ed(this.excerpts)
    }
    //#WeblogFeedRequest.java:212: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setExcerpts(bool)

    public WeblogCategory getWeblogCategory() {
        
        if(weblogCategory == null && weblogCategoryName != null) {
    //#WeblogFeedRequest.java:216: method: WeblogCategory org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getWeblogCategory()
    //#input(WeblogCategory getWeblogCategory()): "Error getting weblog category "._tainted
    //#input(WeblogCategory getWeblogCategory()): "Error looking up weblog "._tainted
    //#input(WeblogCategory getWeblogCategory()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest]
    //#input(WeblogCategory getWeblogCategory()): __Descendant_Table[others]
    //#input(WeblogCategory getWeblogCategory()): __Dispatch_Table.getWeblog()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(WeblogCategory getWeblogCategory()): log
    //#input(WeblogCategory getWeblogCategory()): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java.lang.Boolean.TRUE
    //#input(WeblogCategory getWeblogCategory()): org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.log
    //#input(WeblogCategory getWeblogCategory()): this
    //#input(WeblogCategory getWeblogCategory()): this.__Tag
    //#input(WeblogCategory getWeblogCategory()): this.weblog
    //#input(WeblogCategory getWeblogCategory()): this.weblogCategory
    //#input(WeblogCategory getWeblogCategory()): this.weblogCategoryName
    //#input(WeblogCategory getWeblogCategory()): this.weblogCategoryName._tainted
    //#input(WeblogCategory getWeblogCategory()): this.weblogHandle
    //#input(WeblogCategory getWeblogCategory()): this.weblogHandle._tainted
    //#output(WeblogCategory getWeblogCategory()): return_value
    //#output(WeblogCategory getWeblogCategory()): this.weblog
    //#output(WeblogCategory getWeblogCategory()): this.weblogCategory
    //#pre[6] (WeblogCategory getWeblogCategory()): init'ed(this.weblogCategory)
    //#pre[4] (WeblogCategory getWeblogCategory()): (soft) log != null
    //#pre[5] (WeblogCategory getWeblogCategory()): (soft) init'ed(this.weblog)
    //#pre[8] (WeblogCategory getWeblogCategory()): (soft) org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.log != null
    //#pre[10] (WeblogCategory getWeblogCategory()): (soft) this.__Tag == org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest
    //#pre[11] (WeblogCategory getWeblogCategory()): (soft) init'ed(this.weblogCategoryName)
    //#pre[13] (WeblogCategory getWeblogCategory()): (soft) init'ed(this.weblogHandle)
    //#presumption(WeblogCategory getWeblogCategory()): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@218 != null
    //#presumption(WeblogCategory getWeblogCategory()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@218 != null
    //#post(WeblogCategory getWeblogCategory()): init'ed(return_value)
    //#post(WeblogCategory getWeblogCategory()): this.weblogCategory == return_value
    //#post(WeblogCategory getWeblogCategory()): init'ed(this.weblog)
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(WeblogCategory getWeblogCategory()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#test_vector(WeblogCategory getWeblogCategory()): this.weblogCategory: Inverse{null}, Addr_Set{null}
    //#test_vector(WeblogCategory getWeblogCategory()): this.weblogCategoryName: Addr_Set{null}, Inverse{null}
            try {
                WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
    //#WeblogFeedRequest.java:218: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: WeblogCategory getWeblogCategory()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#WeblogFeedRequest.java:218: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: WeblogCategory getWeblogCategory()
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
                weblogCategory = wmgr.getWeblogCategoryByPath(getWeblog(), weblogCategoryName);
    //#WeblogFeedRequest.java:219: Warning: method not available
    //#    -- call on WeblogCategory org.apache.roller.weblogger.business.WeblogManager:getWeblogCategoryByPath(Weblog, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: WeblogCategory getWeblogCategory()
    //#    unanalyzed callee: WeblogCategory org.apache.roller.weblogger.business.WeblogManager:getWeblogCategoryByPath(Weblog, String)
            } catch (WebloggerException ex) {
                log.error("Error getting weblog category "+weblogCategoryName, ex);
    //#WeblogFeedRequest.java:221: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
    //#    method: WeblogCategory getWeblogCategory()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            }
        }
        
        return weblogCategory;
    //#WeblogFeedRequest.java:225: end of method: WeblogCategory org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getWeblogCategory()
    }

    public void setWeblogCategory(WeblogCategory weblogCategory) {
        this.weblogCategory = weblogCategory;
    //#WeblogFeedRequest.java:229: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setWeblogCategory(WeblogCategory)
    //#input(void setWeblogCategory(WeblogCategory)): this
    //#input(void setWeblogCategory(WeblogCategory)): weblogCategory
    //#output(void setWeblogCategory(WeblogCategory)): this.weblogCategory
    //#post(void setWeblogCategory(WeblogCategory)): this.weblogCategory == weblogCategory
    //#post(void setWeblogCategory(WeblogCategory)): init'ed(this.weblogCategory)
    }
    //#WeblogFeedRequest.java:230: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setWeblogCategory(WeblogCategory)


    public int getPage() {
        return page;
    //#WeblogFeedRequest.java:234: method: int org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getPage()
    //#input(int getPage()): this
    //#input(int getPage()): this.page
    //#output(int getPage()): return_value
    //#pre[2] (int getPage()): init'ed(this.page)
    //#post(int getPage()): return_value == this.page
    //#post(int getPage()): init'ed(return_value)
    //#WeblogFeedRequest.java:234: end of method: int org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getPage()
    }


    public void setPage(int page) {
        this.page = page;
    //#WeblogFeedRequest.java:239: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setPage(int)
    //#input(void setPage(int)): page
    //#input(void setPage(int)): this
    //#output(void setPage(int)): this.page
    //#post(void setPage(int)): this.page == page
    //#post(void setPage(int)): init'ed(this.page)
    }
    //#WeblogFeedRequest.java:240: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setPage(int)

    public String getTerm() {
        return term;
    //#WeblogFeedRequest.java:243: method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getTerm()
    //#input(String getTerm()): this
    //#input(String getTerm()): this.term
    //#output(String getTerm()): return_value
    //#pre[2] (String getTerm()): init'ed(this.term)
    //#post(String getTerm()): return_value == this.term
    //#post(String getTerm()): init'ed(return_value)
    //#WeblogFeedRequest.java:243: end of method: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.getTerm()
    }


    public void setTerm(String query) {
        this.term = query;
    //#WeblogFeedRequest.java:248: method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setTerm(String)
    //#input(void setTerm(String)): query
    //#input(void setTerm(String)): this
    //#output(void setTerm(String)): this.term
    //#post(void setTerm(String)): this.term == query
    //#post(void setTerm(String)): init'ed(this.term)
    }
    //#WeblogFeedRequest.java:249: end of method: void org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest.setTerm(String)
}
    //#WeblogFeedRequest.java:: end of class: org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest
