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

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.pojos.WeblogEntryComment;
import org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager;
import org.apache.roller.weblogger.ui.struts2.util.KeyValueObject;
import org.apache.roller.weblogger.util.cache.CacheManager;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.Utilities;


/**
 * Action for managing global set of comments.
 */
public class GlobalCommentManagement extends UIAction {
    
    private static Log log = LogFactory.getLog(GlobalCommentManagement.class);
    //#GlobalCommentManagement.java:48: method: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init
    //#GlobalCommentManagement.java:48: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement]
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.buildBaseUrl()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.delete()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.execute()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getBulkDeleteCount()I
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getCommentStatusOptions()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getFirstComment()Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getLastComment()Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getPager()Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getSpamStatusOptions()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.isWeblogRequired()Z
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.loadComments()V
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.query()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.requiredUserRole()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;)V
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setBulkDeleteCount(I)V
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setFirstComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setLastComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setPager(Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;)V
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.update()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): log
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.buildBaseUrl()Ljava/lang/String; == &buildBaseUrl
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.delete()Ljava/lang/String; == &delete
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.execute()Ljava/lang/String; == &execute
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean; == &getBean
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getBulkDeleteCount()I == &getBulkDeleteCount
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getCommentStatusOptions()Ljava/util/List; == &getCommentStatusOptions
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getFirstComment()Lorg/apache/roller/weblogger/pojos/WeblogEntryComment; == &getFirstComment
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getLastComment()Lorg/apache/roller/weblogger/pojos/WeblogEntryComment; == &getLastComment
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getPager()Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager; == &getPager
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.getSpamStatusOptions()Ljava/util/List; == &getSpamStatusOptions
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.isWeblogRequired()Z == &isWeblogRequired
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.loadComments()V == &loadComments
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.query()Ljava/lang/String; == &query
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.requiredUserRole()Ljava/lang/String; == &requiredUserRole
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;)V == &setBean
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setBulkDeleteCount(I)V == &setBulkDeleteCount
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setFirstComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V == &setFirstComment
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setLastComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V == &setLastComment
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.setPager(Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;)V == &setPager
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): __Dispatch_Table.update()Ljava/lang/String; == &update
    //#post(org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init): init'ed(log)
    //#GlobalCommentManagement.java:48: end of method: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement__static_init
    
    // number of comments to show per page
    private static final int COUNT = 30;
    
    // bean for managing submitted data
    private GlobalCommentManagementBean bean = new GlobalCommentManagementBean();
    
    // pager for the comments we are viewing
    private CommentsPager pager = null;
    
    // first comment in the list
    private WeblogEntryComment firstComment = null;
    
    // last comment in the list
    private WeblogEntryComment lastComment = null;
    
    // indicates number of comments that would be deleted by bulk removal
    // a non-zero value here indicates bulk removal is a valid option
    private int bulkDeleteCount = 0;
    
    
    public GlobalCommentManagement() {
    //#GlobalCommentManagement.java:70: method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()
    //#GlobalCommentManagement.java:70: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#input(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new GlobalCommentManagementBean(GlobalCommentManagement#1) num objects
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.__Tag
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.approvedString
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.deleteComments
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.endDateString
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.ids
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.page
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.searchString
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.spamComments
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.spamString
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.startDateString
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#1) num objects
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#1).length
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#2) num objects
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#2).length
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.actionName
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bulkDeleteCount
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.desiredMenu
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.firstComment
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.lastComment
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.pageTitle
    //#output(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.pager
    //#new obj(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new GlobalCommentManagementBean(GlobalCommentManagement#1)
    //#new obj(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#1)
    //#new obj(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#2)
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.actionName == &"globalCommentManagement"
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean == &new GlobalCommentManagementBean(GlobalCommentManagement#1)
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bulkDeleteCount == 0
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.page == 0
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#1).length == 0
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#2).length == 0
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.desiredMenu == &"admin"
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.firstComment == null
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.lastComment == null
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.pager == null
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.endDateString == null
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.ids == null
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.searchString == null
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.startDateString == null
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.pageTitle == &"commentManagement.title"
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new GlobalCommentManagementBean(GlobalCommentManagement#1) num objects == 1
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#1) num objects == 1
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): new String[](GlobalCommentManagementBean#2) num objects == 1
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.approvedString == &"ALL"
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.spamString == &"ALL"
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.deleteComments == &new String[](GlobalCommentManagementBean#2)
    //#post(void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()): this.bean.spamComments == &new String[](GlobalCommentManagementBean#1)
        this.actionName = "globalCommentManagement";
        this.desiredMenu = "admin";
        this.pageTitle = "commentManagement.title";
    }
    //#GlobalCommentManagement.java:74: end of method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement()
    
    
    // admin role required
    public String requiredUserRole() {
        return "admin";
    //#GlobalCommentManagement.java:79: method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.requiredUserRole()
    //#output(String requiredUserRole()): return_value
    //#post(String requiredUserRole()): return_value == &"admin"
    //#GlobalCommentManagement.java:79: end of method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.requiredUserRole()
    }
    
    // no weblog required
    public boolean isWeblogRequired() {
        return false;
    //#GlobalCommentManagement.java:84: method: bool org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.isWeblogRequired()
    //#output(bool isWeblogRequired()): return_value
    //#post(bool isWeblogRequired()): return_value == 0
    //#GlobalCommentManagement.java:84: end of method: bool org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.isWeblogRequired()
    }
    
    
    public void loadComments() {
        
        List comments = Collections.EMPTY_LIST;
    //#GlobalCommentManagement.java:90: method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.loadComments()
    //#input(void loadComments()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement]
    //#input(void loadComments()): __Descendant_Table[others]
    //#input(void loadComments()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;
    //#input(void loadComments()): __Dispatch_Table.setFirstComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(void loadComments()): __Dispatch_Table.setLastComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(void loadComments()): __Dispatch_Table.setPager(Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;)V
    //#input(void loadComments()): java.util.Collections.EMPTY_LIST
    //#input(void loadComments()): log
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean]
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[others]
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getApprovedString()Ljava/lang/String;
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDate()Ljava/util/Date;
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDateString()Ljava/lang/String;
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getPage()I
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSearchString()Ljava/lang/String;
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSpamString()Ljava/lang/String;
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDate()Ljava/util/Date;
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDateString()Ljava/lang/String;
    //#input(void loadComments()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStatus()Ljava/lang/String;
    //#input(void loadComments()): this
    //#input(void loadComments()): this.__Tag
    //#input(void loadComments()): this.bean
    //#input(void loadComments()): this.bean.__Tag
    //#input(void loadComments()): this.bean.approvedString
    //#input(void loadComments()): this.bean.endDateString
    //#input(void loadComments()): this.bean.page
    //#input(void loadComments()): this.bean.searchString
    //#input(void loadComments()): this.bean.spamString
    //#input(void loadComments()): this.bean.startDateString
    //#output(void loadComments()): new CommentsPager(loadComments#2) num objects
    //#output(void loadComments()): this.firstComment
    //#output(void loadComments()): this.lastComment
    //#output(void loadComments()): this.pager
    //#new obj(void loadComments()): new CommentsPager(loadComments#2)
    //#pre[5] (void loadComments()): this.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement
    //#pre[6] (void loadComments()): this.bean != null
    //#pre[7] (void loadComments()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean
    //#pre[9] (void loadComments()): init'ed(this.bean.endDateString)
    //#pre[11] (void loadComments()): init'ed(this.bean.searchString)
    //#pre[13] (void loadComments()): init'ed(this.bean.startDateString)
    //#pre[1] (void loadComments()): (soft) log != null
    //#pre[8] (void loadComments()): (soft) this.bean.approvedString != null
    //#pre[10] (void loadComments()): (soft) this.bean.page in -71_582_788..143_165_576
    //#pre[12] (void loadComments()): (soft) this.bean.spamString != null
    //#presumption(void loadComments()): init'ed(java.util.Collections.EMPTY_LIST)
    //#presumption(void loadComments()): java.util.List:size(...)@109 >= -2_147_483_647
    //#presumption(void loadComments()): java.util.List:size(...)@114 >= -2_147_483_647
    //#presumption(void loadComments()): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@93 != null
    //#presumption(void loadComments()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@93 != null
    //#post(void loadComments()): possibly_updated(this.firstComment)
    //#post(void loadComments()): possibly_updated(this.lastComment)
    //#post(void loadComments()): this.pager == &new CommentsPager(loadComments#2)
    //#post(void loadComments()): new CommentsPager(loadComments#2) num objects == 1
    //#unanalyzed(void loadComments()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(void loadComments()): Effects-of-calling:org.apache.commons.lang.StringUtils:isEmpty
    //#unanalyzed(void loadComments()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(void loadComments()): Effects-of-calling:java.text.DateFormat:parse
    //#unanalyzed(void loadComments()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void loadComments()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void loadComments()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void loadComments()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void loadComments()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(void loadComments()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getActionURL
    //#test_vector(void loadComments()): java.util.List:size(...)@107: {-2_147_483_648..0}, {1..4_294_967_295}
    //#test_vector(void loadComments()): java.util.List:size(...)@108: {-2_147_483_648..30}, {31..4_294_967_295}
        boolean hasMore = false;
        try {
            WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
    //#GlobalCommentManagement.java:93: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void loadComments()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#GlobalCommentManagement.java:93: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void loadComments()
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            List rawComments = wmgr.getComments(
    //#GlobalCommentManagement.java:94: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.WeblogManager:getComments(Weblog, WeblogEntry, String, Date, Date, String, bool, int, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void loadComments()
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.WeblogManager:getComments(Weblog, WeblogEntry, String, Date, Date, String, bool, int, int)
                    null,
                    null,
                    getBean().getSearchString(),
                    getBean().getStartDate(),
                    getBean().getEndDate(),
                    getBean().getStatus(),
                    true, // reverse  chrono order
                    getBean().getPage() * COUNT,
                    COUNT + 1);
            comments = new ArrayList();
            comments.addAll(rawComments);   
            
            if(comments != null && comments.size() > 0) {
    //#GlobalCommentManagement.java:107: Warning: test always goes same way
    //#    test predetermined because comments != null
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void loadComments()
    //#    from bb: bb_2
    //#    live edge: bb_2-->bb_3
    //#    tested vn: 0
    //#    tested vn values: {0}
                if(comments.size() > COUNT) {
                    comments.remove(comments.size()-1);
                    hasMore = true;
                }
                
                setFirstComment((WeblogEntryComment)comments.get(0));
                setLastComment((WeblogEntryComment)comments.get(comments.size()-1));
            }
        } catch (WebloggerException ex) {
            log.error("Error looking up comments", ex);
    //#GlobalCommentManagement.java:117: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void loadComments()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Error looking up comments");
    //#GlobalCommentManagement.java:119: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void loadComments()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String)
        }
        
        // build comments pager
        String baseUrl = buildBaseUrl();
        setPager(new CommentsPager(baseUrl, getBean().getPage(), comments, hasMore));
    //#GlobalCommentManagement.java:124: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager(String, int, List, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: void loadComments()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager(String, int, List, bool)
    }
    //#GlobalCommentManagement.java:125: end of method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.loadComments()
    
    
    // use the action data to build a url representing this action, including query data
    private String buildBaseUrl() {
        
        Map<String, String> params = new HashMap();
    //#GlobalCommentManagement.java:131: method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.buildBaseUrl()
    //#input(String buildBaseUrl()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement]
    //#input(String buildBaseUrl()): __Descendant_Table[others]
    //#input(String buildBaseUrl()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;
    //#input(String buildBaseUrl()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean]
    //#input(String buildBaseUrl()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[others]
    //#input(String buildBaseUrl()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getApprovedString()Ljava/lang/String;
    //#input(String buildBaseUrl()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDateString()Ljava/lang/String;
    //#input(String buildBaseUrl()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSearchString()Ljava/lang/String;
    //#input(String buildBaseUrl()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSpamString()Ljava/lang/String;
    //#input(String buildBaseUrl()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDateString()Ljava/lang/String;
    //#input(String buildBaseUrl()): this
    //#input(String buildBaseUrl()): this.__Tag
    //#input(String buildBaseUrl()): this.bean
    //#input(String buildBaseUrl()): this.bean.__Tag
    //#input(String buildBaseUrl()): this.bean.approvedString
    //#input(String buildBaseUrl()): this.bean.endDateString
    //#input(String buildBaseUrl()): this.bean.searchString
    //#input(String buildBaseUrl()): this.bean.spamString
    //#input(String buildBaseUrl()): this.bean.startDateString
    //#output(String buildBaseUrl()): return_value
    //#pre[2] (String buildBaseUrl()): this.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement
    //#pre[3] (String buildBaseUrl()): this.bean != null
    //#pre[4] (String buildBaseUrl()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean
    //#pre[5] (String buildBaseUrl()): init'ed(this.bean.approvedString)
    //#pre[6] (String buildBaseUrl()): init'ed(this.bean.endDateString)
    //#pre[7] (String buildBaseUrl()): init'ed(this.bean.searchString)
    //#pre[8] (String buildBaseUrl()): init'ed(this.bean.spamString)
    //#pre[9] (String buildBaseUrl()): init'ed(this.bean.startDateString)
    //#presumption(String buildBaseUrl()): org.apache.roller.weblogger.business.Weblogger:getUrlStrategy(...)@149 != null
    //#presumption(String buildBaseUrl()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@149 != null
    //#post(String buildBaseUrl()): init'ed(return_value)
    //#test_vector(String buildBaseUrl()): org.apache.commons.lang.StringUtils:isEmpty(...)@133: {1}, {0}
    //#test_vector(String buildBaseUrl()): org.apache.commons.lang.StringUtils:isEmpty(...)@136: {1}, {0}
    //#test_vector(String buildBaseUrl()): org.apache.commons.lang.StringUtils:isEmpty(...)@139: {1}, {0}
    //#test_vector(String buildBaseUrl()): org.apache.commons.lang.StringUtils:isEmpty(...)@142: {1}, {0}
    //#test_vector(String buildBaseUrl()): org.apache.commons.lang.StringUtils:isEmpty(...)@145: {1}, {0}
        
        if(!StringUtils.isEmpty(getBean().getSearchString())) {
    //#GlobalCommentManagement.java:133: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            params.put("bean.searchString", getBean().getSearchString());
        }
        if(!StringUtils.isEmpty(getBean().getStartDateString())) {
    //#GlobalCommentManagement.java:136: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            params.put("bean.startDateString", getBean().getStartDateString());
        }
        if(!StringUtils.isEmpty(getBean().getEndDateString())) {
    //#GlobalCommentManagement.java:139: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            params.put("bean.endDateString", getBean().getEndDateString());
        }
        if(!StringUtils.isEmpty(getBean().getApprovedString())) {
    //#GlobalCommentManagement.java:142: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            params.put("bean.approvedString", getBean().getApprovedString());
        }
        if(!StringUtils.isEmpty(getBean().getSpamString())) {
    //#GlobalCommentManagement.java:145: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            params.put("bean.spamString", getBean().getSpamString());
        }
        
        return WebloggerFactory.getWeblogger().getUrlStrategy().getActionURL("globalCommentManagement", "/roller-ui/admin", 
    //#GlobalCommentManagement.java:149: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#GlobalCommentManagement.java:149: Warning: method not available
    //#    -- call on URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
    //#GlobalCommentManagement.java:149: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String buildBaseUrl()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
    //#GlobalCommentManagement.java:149: end of method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.buildBaseUrl()
                null, params, false);
    }
    
    
    // show comment management page
    public String execute() {
        
        // load list of comments from query
        loadComments();
    //#GlobalCommentManagement.java:158: method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.execute()
    //#input(String execute()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement]
    //#input(String execute()): __Descendant_Table[others]
    //#input(String execute()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;
    //#input(String execute()): __Dispatch_Table.getPager()Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;
    //#input(String execute()): __Dispatch_Table.loadComments()V
    //#input(String execute()): __Dispatch_Table.setFirstComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String execute()): __Dispatch_Table.setLastComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String execute()): __Dispatch_Table.setPager(Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;)V
    //#input(String execute()): java.util.Collections.EMPTY_LIST
    //#input(String execute()): log
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean]
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[others]
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getApprovedString()Ljava/lang/String;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDate()Ljava/util/Date;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDateString()Ljava/lang/String;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getPage()I
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSearchString()Ljava/lang/String;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSpamString()Ljava/lang/String;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDate()Ljava/util/Date;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDateString()Ljava/lang/String;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStatus()Ljava/lang/String;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.loadCheckboxes(Ljava/util/List;)V
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.setIds(Ljava/lang/String;)V
    //#input(String execute()): this
    //#input(String execute()): this.__Tag
    //#input(String execute()): this.bean
    //#input(String execute()): this.bean.__Tag
    //#input(String execute()): this.bean.approvedString
    //#input(String execute()): this.bean.endDateString
    //#input(String execute()): this.bean.page
    //#input(String execute()): this.bean.searchString
    //#input(String execute()): this.bean.spamString
    //#input(String execute()): this.bean.startDateString
    //#output(String execute()): new CommentsPager(loadComments#2) num objects
    //#output(String execute()): return_value
    //#output(String execute()): this.bean.ids
    //#output(String execute()): this.bean.spamComments
    //#output(String execute()): this.firstComment
    //#output(String execute()): this.lastComment
    //#output(String execute()): this.pager
    //#new obj(String execute()): new CommentsPager(loadComments#2)
    //#pre[5] (String execute()): this.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement
    //#pre[6] (String execute()): this.bean != null
    //#pre[7] (String execute()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean
    //#pre[9] (String execute()): init'ed(this.bean.endDateString)
    //#pre[11] (String execute()): init'ed(this.bean.searchString)
    //#pre[13] (String execute()): init'ed(this.bean.startDateString)
    //#pre[1] (String execute()): (soft) log != null
    //#pre[8] (String execute()): (soft) this.bean.approvedString != null
    //#pre[10] (String execute()): (soft) this.bean.page in -71_582_788..143_165_576
    //#pre[12] (String execute()): (soft) this.bean.spamString != null
    //#presumption(String execute()): org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems(...)@161 != null
    //#post(String execute()): return_value == &"list"
    //#post(String execute()): init'ed(this.bean.ids)
    //#post(String execute()): init'ed(this.bean.spamComments)
    //#post(String execute()): possibly_updated(this.firstComment)
    //#post(String execute()): possibly_updated(this.lastComment)
    //#post(String execute()): this.pager == &new CommentsPager(loadComments#2)
    //#post(String execute()): new CommentsPager(loadComments#2) num objects == 1
    //#unanalyzed(String execute()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.commons.lang.StringUtils:isEmpty
    //#unanalyzed(String execute()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(String execute()): Effects-of-calling:java.text.DateFormat:parse
    //#unanalyzed(String execute()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String execute()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError
    //#unanalyzed(String execute()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String execute()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String execute()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getId
    //#unanalyzed(String execute()): Effects-of-calling:java.util.List:add
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus
    //#unanalyzed(String execute()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String execute()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.util.Utilities:stringArrayToString
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getComments
    //#unanalyzed(String execute()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(String execute()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getActionURL
    //#unanalyzed(String execute()): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(String execute()): Effects-of-calling:java.util.List:remove
    //#unanalyzed(String execute()): Effects-of-calling:java.util.List:get
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager
        
        // load bean data using comments list
        getBean().loadCheckboxes(getPager().getItems());
    //#GlobalCommentManagement.java:161: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String execute()
    //#    unanalyzed callee: List org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems()
        
        return LIST;
    //#GlobalCommentManagement.java:163: end of method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.execute()
    }
    
    
    /**
     * Query for a specific subset of comments based on various criteria.
     */
    public String query() {
        
        // load list of comments from query
        loadComments();
    //#GlobalCommentManagement.java:173: method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.query()
    //#input(String query()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement]
    //#input(String query()): __Descendant_Table[others]
    //#input(String query()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;
    //#input(String query()): __Dispatch_Table.getPager()Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;
    //#input(String query()): __Dispatch_Table.loadComments()V
    //#input(String query()): __Dispatch_Table.setBulkDeleteCount(I)V
    //#input(String query()): __Dispatch_Table.setFirstComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String query()): __Dispatch_Table.setLastComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String query()): __Dispatch_Table.setPager(Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;)V
    //#input(String query()): java.util.Collections.EMPTY_LIST
    //#input(String query()): log
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean]
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[others]
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getApprovedString()Ljava/lang/String;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDate()Ljava/util/Date;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDateString()Ljava/lang/String;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getPage()I
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSearchString()Ljava/lang/String;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSpamString()Ljava/lang/String;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDate()Ljava/util/Date;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDateString()Ljava/lang/String;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStatus()Ljava/lang/String;
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.loadCheckboxes(Ljava/util/List;)V
    //#input(String query()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.setIds(Ljava/lang/String;)V
    //#input(String query()): this
    //#input(String query()): this.__Tag
    //#input(String query()): this.bean
    //#input(String query()): this.bean.__Tag
    //#input(String query()): this.bean.approvedString
    //#input(String query()): this.bean.endDateString
    //#input(String query()): this.bean.page
    //#input(String query()): this.bean.searchString
    //#input(String query()): this.bean.spamString
    //#input(String query()): this.bean.startDateString
    //#output(String query()): new CommentsPager(loadComments#2) num objects
    //#output(String query()): return_value
    //#output(String query()): this.bean.ids
    //#output(String query()): this.bean.spamComments
    //#output(String query()): this.bulkDeleteCount
    //#output(String query()): this.firstComment
    //#output(String query()): this.lastComment
    //#output(String query()): this.pager
    //#new obj(String query()): new CommentsPager(loadComments#2)
    //#pre[6] (String query()): this.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement
    //#pre[7] (String query()): this.bean != null
    //#pre[8] (String query()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean
    //#pre[1] (String query()): (soft) log != null
    //#pre[9] (String query()): (soft) this.bean.approvedString != null
    //#pre[10] (String query()): (soft) init'ed(this.bean.endDateString)
    //#pre[11] (String query()): (soft) this.bean.page in -71_582_788..143_165_576
    //#pre[12] (String query()): (soft) init'ed(this.bean.searchString)
    //#pre[13] (String query()): (soft) this.bean.spamString != null
    //#pre[14] (String query()): (soft) init'ed(this.bean.startDateString)
    //#presumption(String query()): org.apache.roller.weblogger.business.WeblogManager:getComments(...)@180 != null
    //#presumption(String query()): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@179 != null
    //#presumption(String query()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@179 != null
    //#presumption(String query()): org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems(...)@176 != null
    //#post(String query()): return_value == &"list"
    //#post(String query()): init'ed(this.bean.ids)
    //#post(String query()): init'ed(this.bean.spamComments)
    //#post(String query()): possibly_updated(this.bulkDeleteCount)
    //#post(String query()): possibly_updated(this.firstComment)
    //#post(String query()): possibly_updated(this.lastComment)
    //#post(String query()): this.pager == &new CommentsPager(loadComments#2)
    //#post(String query()): new CommentsPager(loadComments#2) num objects == 1
    //#unanalyzed(String query()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(String query()): Effects-of-calling:org.apache.commons.lang.StringUtils:isEmpty
    //#unanalyzed(String query()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(String query()): Effects-of-calling:java.text.DateFormat:parse
    //#unanalyzed(String query()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String query()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String query()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError
    //#unanalyzed(String query()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String query()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String query()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getId
    //#unanalyzed(String query()): Effects-of-calling:java.util.List:add
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus
    //#unanalyzed(String query()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String query()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.util.Utilities:stringArrayToString
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getComments
    //#unanalyzed(String query()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(String query()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getActionURL
    //#unanalyzed(String query()): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(String query()): Effects-of-calling:java.util.List:remove
    //#unanalyzed(String query()): Effects-of-calling:java.util.List:get
    //#unanalyzed(String query()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager
    //#test_vector(String query()): java.util.List:size(...)@191: {-2_147_483_648..30}, {31..4_294_967_295}
        
        // load bean data using comments list
        getBean().loadCheckboxes(getPager().getItems());
    //#GlobalCommentManagement.java:176: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String query()
    //#    unanalyzed callee: List org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems()
        
        try {
            WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
    //#GlobalCommentManagement.java:179: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String query()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#GlobalCommentManagement.java:179: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String query()
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            List allMatchingComments = wmgr.getComments(
    //#GlobalCommentManagement.java:180: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.WeblogManager:getComments(Weblog, WeblogEntry, String, Date, Date, String, bool, int, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String query()
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.WeblogManager:getComments(Weblog, WeblogEntry, String, Date, Date, String, bool, int, int)
                    null,
                    null,
                    getBean().getSearchString(),
                    getBean().getStartDate(),
                    getBean().getEndDate(),
                    getBean().getStatus(),
                    true, // reverse  chrono order
                    0,
                    -1);
            
            if(allMatchingComments.size() > COUNT) {
                setBulkDeleteCount(allMatchingComments.size());
            }
            
        } catch (WebloggerException ex) {
            log.error("Error looking up comments", ex);
    //#GlobalCommentManagement.java:196: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String query()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Error looking up comments");
    //#GlobalCommentManagement.java:198: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String query()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String)
        }
        
        return LIST;
    //#GlobalCommentManagement.java:201: end of method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.query()
    }
    
    
    /**
     * Bulk delete all comments matching query criteria.
     */
    public String delete() {
        
        try {
            WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
    //#GlobalCommentManagement.java:211: method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.delete()
    //#GlobalCommentManagement.java:211: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String delete()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#GlobalCommentManagement.java:211: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String delete()
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#input(String delete()): " comments"._tainted
    //#input(String delete()): "Successfully deleted "._tainted
    //#input(String delete()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement]
    //#input(String delete()): __Descendant_Table[others]
    //#input(String delete()): __Dispatch_Table.execute()Ljava/lang/String;
    //#input(String delete()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;
    //#input(String delete()): __Dispatch_Table.getPager()Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;
    //#input(String delete()): __Dispatch_Table.loadComments()V
    //#input(String delete()): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;)V
    //#input(String delete()): __Dispatch_Table.setFirstComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String delete()): __Dispatch_Table.setLastComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String delete()): __Dispatch_Table.setPager(Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;)V
    //#input(String delete()): java.util.Collections.EMPTY_LIST
    //#input(String delete()): log
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean]
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[others]
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getApprovedString()Ljava/lang/String;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDate()Ljava/util/Date;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDateString()Ljava/lang/String;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getPage()I
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSearchString()Ljava/lang/String;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSpamString()Ljava/lang/String;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDate()Ljava/util/Date;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDateString()Ljava/lang/String;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStatus()Ljava/lang/String;
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.loadCheckboxes(Ljava/util/List;)V
    //#input(String delete()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.setIds(Ljava/lang/String;)V
    //#input(String delete()): this
    //#input(String delete()): this.__Tag
    //#input(String delete()): this.bean
    //#input(String delete()): this.bean.__Tag
    //#input(String delete()): this.bean.approvedString
    //#input(String delete()): this.bean.endDateString
    //#input(String delete()): this.bean.page
    //#input(String delete()): this.bean.searchString
    //#input(String delete()): this.bean.spamString
    //#input(String delete()): this.bean.startDateString
    //#output(String delete()): new CommentsPager(loadComments#2) num objects
    //#output(String delete()): new GlobalCommentManagementBean(delete#2) num objects
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).__Tag
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).approvedString
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).deleteComments
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).endDateString
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).ids
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).page
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).searchString
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).spamComments
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).spamString
    //#output(String delete()): new GlobalCommentManagementBean(delete#2).startDateString
    //#output(String delete()): new String[](GlobalCommentManagementBean#1) num objects
    //#output(String delete()): new String[](GlobalCommentManagementBean#1).length
    //#output(String delete()): new String[](GlobalCommentManagementBean#2) num objects
    //#output(String delete()): new String[](GlobalCommentManagementBean#2).length
    //#output(String delete()): return_value
    //#output(String delete()): this.bean
    //#output(String delete()): this.bean.ids
    //#output(String delete()): this.bean.spamComments
    //#output(String delete()): this.firstComment
    //#output(String delete()): this.lastComment
    //#output(String delete()): this.pager
    //#new obj(String delete()): new CommentsPager(loadComments#2)
    //#new obj(String delete()): new GlobalCommentManagementBean(delete#2)
    //#new obj(String delete()): new String[](GlobalCommentManagementBean#1)
    //#new obj(String delete()): new String[](GlobalCommentManagementBean#2)
    //#pre[1] (String delete()): (soft) log != null
    //#pre[2] (String delete()): (soft) this.bean != null
    //#pre[9] (String delete()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement
    //#pre[10] (String delete()): (soft) this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean
    //#pre[11] (String delete()): (soft) this.bean.approvedString != null
    //#pre[12] (String delete()): (soft) init'ed(this.bean.endDateString)
    //#pre[13] (String delete()): (soft) init'ed(this.bean.searchString)
    //#pre[14] (String delete()): (soft) this.bean.spamString != null
    //#pre[15] (String delete()): (soft) init'ed(this.bean.startDateString)
    //#presumption(String delete()): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@211 != null
    //#presumption(String delete()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@211 != null
    //#post(String delete()): return_value == &"list"
    //#post(String delete()): this.bean == One-of{&new GlobalCommentManagementBean(delete#2), old this.bean}
    //#post(String delete()): (soft) this.bean != null
    //#post(String delete()): init'ed(this.bean.ids)
    //#post(String delete()): init'ed(this.bean.spamComments)
    //#post(String delete()): possibly_updated(this.firstComment)
    //#post(String delete()): possibly_updated(this.lastComment)
    //#post(String delete()): this.pager == One-of{&new CommentsPager(loadComments#2), old this.pager}
    //#post(String delete()): new CommentsPager(loadComments#2) num objects <= 1
    //#post(String delete()): new GlobalCommentManagementBean(delete#2) num objects <= 1
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).__Tag)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).approvedString)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).deleteComments)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).endDateString)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).ids)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).page)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).searchString)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).spamComments)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).spamString)
    //#post(String delete()): init'ed(new GlobalCommentManagementBean(delete#2).startDateString)
    //#post(String delete()): new String[](GlobalCommentManagementBean#1) num objects <= 1
    //#post(String delete()): init'ed(new String[](GlobalCommentManagementBean#1).length)
    //#post(String delete()): new String[](GlobalCommentManagementBean#2) num objects <= 1
    //#post(String delete()): init'ed(new String[](GlobalCommentManagementBean#2).length)
    //#unanalyzed(String delete()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.commons.lang.StringUtils:isEmpty
    //#unanalyzed(String delete()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(String delete()): Effects-of-calling:java.text.DateFormat:parse
    //#unanalyzed(String delete()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String delete()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError
    //#unanalyzed(String delete()): Effects-of-calling:loadComments
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String delete()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String delete()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getId
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:add
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.util.Utilities:stringArrayToString
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getComments
    //#unanalyzed(String delete()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(String delete()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getActionURL
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:remove
    //#unanalyzed(String delete()): Effects-of-calling:java.util.List:get
    //#unanalyzed(String delete()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager
            int deleted = wmgr.removeMatchingComments(
    //#GlobalCommentManagement.java:212: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.business.WeblogManager:removeMatchingComments(Weblog, WeblogEntry, String, Date, Date, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String delete()
    //#    unanalyzed callee: int org.apache.roller.weblogger.business.WeblogManager:removeMatchingComments(Weblog, WeblogEntry, String, Date, Date, String)
                    null,
                    null,
                    getBean().getSearchString(),
                    getBean().getStartDate(),
                    getBean().getEndDate(),
                    getBean().getStatus());
            
            // TODO: i18n
            addMessage("Successfully deleted "+deleted+" comments");
    //#GlobalCommentManagement.java:221: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addMessage(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addMessage(String)
            
            // reset form and load fresh comments list
            setBean(new GlobalCommentManagementBean());
            
            return execute();
            
        } catch (WebloggerException ex) {
            log.error("Error doing bulk delete", ex);
    //#GlobalCommentManagement.java:229: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Bulk delete failed due to unexpected error");
    //#GlobalCommentManagement.java:231: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String delete()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String)
        }
        
        return LIST;
    //#GlobalCommentManagement.java:234: end of method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.delete()
    }
    
    
    /**
     * Update a list of comments.
     */
    public String update() {
        
        try {
            WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
    //#GlobalCommentManagement.java:244: method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.update()
    //#GlobalCommentManagement.java:244: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#GlobalCommentManagement.java:244: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#input(String update()): " comments marked as spam"._tainted
    //#input(String update()): "Already deleted, skipping - "._tainted
    //#input(String update()): "Marking as approved - "._tainted
    //#input(String update()): "Marking as spam - "._tainted
    //#input(String update()): "Processing deletes - "._tainted
    //#input(String update()): "processing id - "._tainted
    //#input(String update()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement]
    //#input(String update()): __Descendant_Table[others]
    //#input(String update()): __Dispatch_Table.execute()Ljava/lang/String;
    //#input(String update()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;
    //#input(String update()): __Dispatch_Table.getPager()Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;
    //#input(String update()): __Dispatch_Table.loadComments()V
    //#input(String update()): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean;)V
    //#input(String update()): __Dispatch_Table.setFirstComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String update()): __Dispatch_Table.setLastComment(Lorg/apache/roller/weblogger/pojos/WeblogEntryComment;)V
    //#input(String update()): __Dispatch_Table.setPager(Lorg/apache/roller/weblogger/ui/struts2/pagers/CommentsPager;)V
    //#input(String update()): java.util.Collections.EMPTY_LIST
    //#input(String update()): log
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean]
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Descendant_Table[others]
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getApprovedString()Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getDeleteComments()[Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDate()Ljava/util/Date;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getEndDateString()Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getIds()Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getPage()I
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSearchString()Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSpamComments()[Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getSpamString()Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDate()Ljava/util/Date;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStartDateString()Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.getStatus()Ljava/lang/String;
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.loadCheckboxes(Ljava/util/List;)V
    //#input(String update()): org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.__Dispatch_Table.setIds(Ljava/lang/String;)V
    //#input(String update()): this
    //#input(String update()): this.__Tag
    //#input(String update()): this.bean
    //#input(String update()): this.bean.__Tag
    //#input(String update()): this.bean.approvedString
    //#input(String update()): this.bean.deleteComments
    //#input(String update()): this.bean.endDateString
    //#input(String update()): this.bean.ids
    //#input(String update()): this.bean.page
    //#input(String update()): this.bean.searchString
    //#input(String update()): this.bean.spamComments
    //#input(String update()): this.bean.spamString
    //#input(String update()): this.bean.startDateString
    //#output(String update()): new CommentsPager(loadComments#2) num objects
    //#output(String update()): new GlobalCommentManagementBean(update#8) num objects
    //#output(String update()): new GlobalCommentManagementBean(update#8).__Tag
    //#output(String update()): new GlobalCommentManagementBean(update#8).approvedString
    //#output(String update()): new GlobalCommentManagementBean(update#8).deleteComments
    //#output(String update()): new GlobalCommentManagementBean(update#8).endDateString
    //#output(String update()): new GlobalCommentManagementBean(update#8).ids
    //#output(String update()): new GlobalCommentManagementBean(update#8).page
    //#output(String update()): new GlobalCommentManagementBean(update#8).searchString
    //#output(String update()): new GlobalCommentManagementBean(update#8).spamComments
    //#output(String update()): new GlobalCommentManagementBean(update#8).spamString
    //#output(String update()): new GlobalCommentManagementBean(update#8).startDateString
    //#output(String update()): new String[](GlobalCommentManagementBean#1) num objects
    //#output(String update()): new String[](GlobalCommentManagementBean#1).length
    //#output(String update()): new String[](GlobalCommentManagementBean#2) num objects
    //#output(String update()): new String[](GlobalCommentManagementBean#2).length
    //#output(String update()): return_value
    //#output(String update()): this.bean
    //#output(String update()): this.bean.ids
    //#output(String update()): this.bean.spamComments
    //#output(String update()): this.firstComment
    //#output(String update()): this.lastComment
    //#output(String update()): this.pager
    //#new obj(String update()): new CommentsPager(loadComments#2)
    //#new obj(String update()): new GlobalCommentManagementBean(update#8)
    //#new obj(String update()): new String[](GlobalCommentManagementBean#1)
    //#new obj(String update()): new String[](GlobalCommentManagementBean#2)
    //#pre[1] (String update()): log != null
    //#pre[2] (String update()): (soft) this.bean != null
    //#pre[3] (String update()): (soft) init'ed(this.bean.ids)
    //#pre[4] (String update()): (soft) init'ed(this.bean.spamComments)
    //#pre[9] (String update()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement
    //#pre[10] (String update()): (soft) this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean
    //#pre[11] (String update()): (soft) init'ed(this.bean.deleteComments)
    //#presumption(String update()): ids.length@265 <= 4_294_967_295
    //#presumption(String update()): java.util.Arrays:asList(...)@262 != null
    //#presumption(String update()): org.apache.roller.weblogger.business.WeblogManager:getComment(...)@255 != null
    //#presumption(String update()): org.apache.roller.weblogger.business.WeblogManager:getComment(...)@275 != null
    //#presumption(String update()): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@244 != null
    //#presumption(String update()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@244 != null
    //#presumption(String update()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@294 != null
    //#presumption(String update()): org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry(...)@256 != null
    //#presumption(String update()): org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry(...)@284 != null
    //#presumption(String update()): org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry(...)@290 != null
    //#presumption(String update()): org.apache.roller.weblogger.util.Utilities:stringToStringArray(...)@265 != null
    //#post(String update()): return_value == &"list"
    //#post(String update()): this.bean == One-of{&new GlobalCommentManagementBean(update#8), old this.bean}
    //#post(String update()): (soft) this.bean != null
    //#post(String update()): init'ed(this.bean.ids)
    //#post(String update()): init'ed(this.bean.spamComments)
    //#post(String update()): possibly_updated(this.firstComment)
    //#post(String update()): possibly_updated(this.lastComment)
    //#post(String update()): this.pager == One-of{&new CommentsPager(loadComments#2), old this.pager}
    //#post(String update()): new CommentsPager(loadComments#2) num objects <= 1
    //#post(String update()): new GlobalCommentManagementBean(update#8) num objects <= 1
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).__Tag)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).approvedString)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).deleteComments)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).endDateString)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).ids)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).page)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).searchString)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).spamComments)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).spamString)
    //#post(String update()): init'ed(new GlobalCommentManagementBean(update#8).startDateString)
    //#post(String update()): new String[](GlobalCommentManagementBean#1) num objects <= 1
    //#post(String update()): init'ed(new String[](GlobalCommentManagementBean#1).length)
    //#post(String update()): new String[](GlobalCommentManagementBean#2) num objects <= 1
    //#post(String update()): init'ed(new String[](GlobalCommentManagementBean#2).length)
    //#unanalyzed(String update()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(String update()): Effects-of-calling:org.apache.commons.lang.StringUtils:isEmpty
    //#unanalyzed(String update()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(String update()): Effects-of-calling:java.text.DateFormat:parse
    //#unanalyzed(String update()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String update()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String update()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError
    //#unanalyzed(String update()): Effects-of-calling:loadComments
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager:getItems
    //#unanalyzed(String update()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String update()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String update()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getId
    //#unanalyzed(String update()): Effects-of-calling:java.util.List:add
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus
    //#unanalyzed(String update()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String update()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.util.Utilities:stringArrayToString
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getComments
    //#unanalyzed(String update()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(String update()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getActionURL
    //#unanalyzed(String update()): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(String update()): Effects-of-calling:java.util.List:remove
    //#unanalyzed(String update()): Effects-of-calling:java.util.List:get
    //#unanalyzed(String update()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager
    //#test_vector(String update()): java.lang.String:equals(...)@278: {1}, {0}
    //#test_vector(String update()): java.lang.String:equals(...)@285: {0}, {1}
    //#test_vector(String update()): java.util.Arrays:asList(...)@249: Addr_Set{null}, Inverse{null}
    //#test_vector(String update()): java.util.Iterator:hasNext(...)@254: {0}, {1}
    //#test_vector(String update()): java.util.Iterator:hasNext(...)@297: {0}, {1}
    //#test_vector(String update()): java.util.List:contains(...)@270: {0}, {1}
    //#test_vector(String update()): java.util.List:contains(...)@278: {0}, {1}
    //#test_vector(String update()): java.util.List:size(...)@250: {-2_147_483_648..0}, {1..4_294_967_295}
            
            List<Weblog> flushList = new ArrayList<Weblog>();
            
            // delete all comments with delete box checked
            List<String> deletes = Arrays.asList(getBean().getDeleteComments());
            if(deletes != null && deletes.size() > 0) {
                log.debug("Processing deletes - "+deletes.size());
    //#GlobalCommentManagement.java:251: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                
                WeblogEntryComment deleteComment = null;
    //#GlobalCommentManagement.java:253: Warning: unused assignment
    //#    unused assignment into deleteComment
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    Attribs:  Uncertain
                for(String deleteId : deletes) {
                    deleteComment = wmgr.getComment(deleteId);
    //#GlobalCommentManagement.java:255: Warning: method not available
    //#    -- call on WeblogEntryComment org.apache.roller.weblogger.business.WeblogManager:getComment(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: WeblogEntryComment org.apache.roller.weblogger.business.WeblogManager:getComment(String)
                    flushList.add(deleteComment.getWeblogEntry().getWebsite());
    //#GlobalCommentManagement.java:256: Warning: method not available
    //#    -- call on WeblogEntry org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: WeblogEntry org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry()
    //#GlobalCommentManagement.java:256: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
                    wmgr.removeComment(deleteComment);
    //#GlobalCommentManagement.java:257: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.WeblogManager:removeComment(WeblogEntryComment)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.WeblogManager:removeComment(WeblogEntryComment)
                }
            }
            
            // loop through IDs of all comments displayed on page
            List spamIds = Arrays.asList(getBean().getSpamComments());
            log.debug(spamIds.size()+" comments marked as spam");
    //#GlobalCommentManagement.java:263: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
            
            String[] ids = Utilities.stringToStringArray(getBean().getIds(),",");
    //#GlobalCommentManagement.java:265: Warning: method not available
    //#    -- call on String[] org.apache.roller.weblogger.util.Utilities:stringToStringArray(String, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: String[] org.apache.roller.weblogger.util.Utilities:stringToStringArray(String, String)
            for (int i=0; i < ids.length; i++) {
                log.debug("processing id - "+ ids[i]);
    //#GlobalCommentManagement.java:267: ?use of default init
    //#    init'ed(ids[i])
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    basic block: bb_9
    //#    assertion: init'ed(ids[i])
    //#    VN: undefined
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
    //#GlobalCommentManagement.java:267: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                
                // if we already deleted it then skip forward
                if(deletes.contains(ids[i])) {
    //#GlobalCommentManagement.java:270: ?null dereference
    //#    deletes != null
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    basic block: bb_9
    //#    assertion: deletes != null
    //#    VN: java.util.Arrays:asList(...)@249
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad  Uncertain
    //#GlobalCommentManagement.java:270: ?use of default init
    //#    init'ed(ids[i])
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    basic block: bb_9
    //#    assertion: init'ed(ids[i])
    //#    VN: undefined
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
                    log.debug("Already deleted, skipping - "+ids[i]);
    //#GlobalCommentManagement.java:271: ?use of default init
    //#    init'ed(ids[i])
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    basic block: bb_10
    //#    assertion: init'ed(ids[i])
    //#    VN: undefined
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
    //#GlobalCommentManagement.java:271: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                    continue;
                }
                
                WeblogEntryComment comment = wmgr.getComment(ids[i]);
    //#GlobalCommentManagement.java:275: ?use of default init
    //#    init'ed(ids[i])
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    basic block: bb_11
    //#    assertion: init'ed(ids[i])
    //#    VN: undefined
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
    //#GlobalCommentManagement.java:275: Warning: method not available
    //#    -- call on WeblogEntryComment org.apache.roller.weblogger.business.WeblogManager:getComment(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: WeblogEntryComment org.apache.roller.weblogger.business.WeblogManager:getComment(String)
                
                // mark/unmark spam
                if (spamIds.contains(ids[i]) && 
    //#GlobalCommentManagement.java:278: ?use of default init
    //#    init'ed(ids[i])
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    basic block: bb_11
    //#    assertion: init'ed(ids[i])
    //#    VN: undefined
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
    //#GlobalCommentManagement.java:278: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus()
                        !WeblogEntryComment.SPAM.equals(comment.getStatus())) {
                    log.debug("Marking as spam - "+comment.getId());
    //#GlobalCommentManagement.java:280: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogEntryComment:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogEntryComment:getId()
    //#GlobalCommentManagement.java:280: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                    comment.setStatus(WeblogEntryComment.SPAM);
    //#GlobalCommentManagement.java:281: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.WeblogEntryComment:setStatus(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.WeblogEntryComment:setStatus(String)
                    wmgr.saveComment(comment);
    //#GlobalCommentManagement.java:282: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.WeblogManager:saveComment(WeblogEntryComment)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.WeblogManager:saveComment(WeblogEntryComment)
                    
                    flushList.add(comment.getWeblogEntry().getWebsite());
    //#GlobalCommentManagement.java:284: Warning: method not available
    //#    -- call on WeblogEntry org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: WeblogEntry org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry()
    //#GlobalCommentManagement.java:284: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
                } else if(WeblogEntryComment.SPAM.equals(comment.getStatus())) {
    //#GlobalCommentManagement.java:285: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogEntryComment:getStatus()
                    log.debug("Marking as approved - "+comment.getId());
    //#GlobalCommentManagement.java:286: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogEntryComment:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogEntryComment:getId()
    //#GlobalCommentManagement.java:286: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                    comment.setStatus(WeblogEntryComment.APPROVED);
    //#GlobalCommentManagement.java:287: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.WeblogEntryComment:setStatus(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.WeblogEntryComment:setStatus(String)
                    wmgr.saveComment(comment);
    //#GlobalCommentManagement.java:288: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.WeblogManager:saveComment(WeblogEntryComment)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.WeblogManager:saveComment(WeblogEntryComment)
                    
                    flushList.add(comment.getWeblogEntry().getWebsite());
    //#GlobalCommentManagement.java:290: Warning: method not available
    //#    -- call on WeblogEntry org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: WeblogEntry org.apache.roller.weblogger.pojos.WeblogEntryComment:getWeblogEntry()
    //#GlobalCommentManagement.java:290: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
                }
            }
            
            WebloggerFactory.getWeblogger().flush();
    //#GlobalCommentManagement.java:294: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#GlobalCommentManagement.java:294: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
            
            // notify caches of changes, flush weblogs affected by changes
            for (Iterator sites = flushList.iterator(); sites.hasNext();) {
                CacheManager.invalidate((Weblog)sites.next());
    //#GlobalCommentManagement.java:298: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
            }
            
            addMessage("commentManagement.updateSuccess");
    //#GlobalCommentManagement.java:301: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addMessage(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addMessage(String)
            
            // reset form and load fresh comments list
            setBean(new GlobalCommentManagementBean());
            
            return execute();
            
        } catch (Exception ex) {
            log.error("ERROR updating comments", ex);
    //#GlobalCommentManagement.java:309: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            addError("commentManagement.updateError", ex.toString());
    //#GlobalCommentManagement.java:310: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: String update()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:addError(String, String)
        }
        
        return LIST;
    //#GlobalCommentManagement.java:313: end of method: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.update()
    }
    
    
    public List getCommentStatusOptions() {
        
        List opts = new ArrayList();
    //#GlobalCommentManagement.java:319: method: List org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getCommentStatusOptions()
    //#input(List getCommentStatusOptions()): this
    //#output(List getCommentStatusOptions()): new ArrayList(getCommentStatusOptions#1) num objects
    //#output(List getCommentStatusOptions()): return_value
    //#new obj(List getCommentStatusOptions()): new ArrayList(getCommentStatusOptions#1)
    //#post(List getCommentStatusOptions()): return_value == &new ArrayList(getCommentStatusOptions#1)
    //#post(List getCommentStatusOptions()): new ArrayList(getCommentStatusOptions#1) num objects == 1
        
        opts.add(new KeyValueObject("ALL", getText("commentManagement.all")));
    //#GlobalCommentManagement.java:321: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#GlobalCommentManagement.java:321: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
        opts.add(new KeyValueObject("ONLY_PENDING", getText("commentManagement.onlyPending")));
    //#GlobalCommentManagement.java:322: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#GlobalCommentManagement.java:322: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
        opts.add(new KeyValueObject("ONLY_APPROVED", getText("commentManagement.onlyApproved")));
    //#GlobalCommentManagement.java:323: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#GlobalCommentManagement.java:323: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
        opts.add(new KeyValueObject("ONLY_DISAPPROVED", getText("commentManagement.onlyDisapproved")));
    //#GlobalCommentManagement.java:324: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#GlobalCommentManagement.java:324: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getCommentStatusOptions()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
        
        return opts;
    //#GlobalCommentManagement.java:326: end of method: List org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getCommentStatusOptions()
    }
    
    public List getSpamStatusOptions() {
        
        List opts = new ArrayList();
    //#GlobalCommentManagement.java:331: method: List org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getSpamStatusOptions()
    //#input(List getSpamStatusOptions()): this
    //#output(List getSpamStatusOptions()): new ArrayList(getSpamStatusOptions#1) num objects
    //#output(List getSpamStatusOptions()): return_value
    //#new obj(List getSpamStatusOptions()): new ArrayList(getSpamStatusOptions#1)
    //#post(List getSpamStatusOptions()): return_value == &new ArrayList(getSpamStatusOptions#1)
    //#post(List getSpamStatusOptions()): new ArrayList(getSpamStatusOptions#1) num objects == 1
        
        opts.add(new KeyValueObject("ALL", getText("commentManagement.all")));
    //#GlobalCommentManagement.java:333: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getSpamStatusOptions()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#GlobalCommentManagement.java:333: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getSpamStatusOptions()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
        opts.add(new KeyValueObject("NO_SPAM", getText("commentManagement.noSpam")));
    //#GlobalCommentManagement.java:334: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getSpamStatusOptions()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#GlobalCommentManagement.java:334: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getSpamStatusOptions()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
        opts.add(new KeyValueObject("ONLY_SPAM", getText("commentManagement.onlySpam")));
    //#GlobalCommentManagement.java:335: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getSpamStatusOptions()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement:getText(String)
    //#GlobalCommentManagement.java:335: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
    //#    method: List getSpamStatusOptions()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.KeyValueObject(Object, Object)
        
        return opts;
    //#GlobalCommentManagement.java:337: end of method: List org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getSpamStatusOptions()
    }
    
    
    public GlobalCommentManagementBean getBean() {
        return bean;
    //#GlobalCommentManagement.java:342: method: GlobalCommentManagementBean org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getBean()
    //#input(GlobalCommentManagementBean getBean()): this
    //#input(GlobalCommentManagementBean getBean()): this.bean
    //#output(GlobalCommentManagementBean getBean()): return_value
    //#pre[2] (GlobalCommentManagementBean getBean()): init'ed(this.bean)
    //#post(GlobalCommentManagementBean getBean()): return_value == this.bean
    //#post(GlobalCommentManagementBean getBean()): init'ed(return_value)
    //#GlobalCommentManagement.java:342: end of method: GlobalCommentManagementBean org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getBean()
    }

    public void setBean(GlobalCommentManagementBean bean) {
        this.bean = bean;
    //#GlobalCommentManagement.java:346: method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setBean(GlobalCommentManagementBean)
    //#input(void setBean(GlobalCommentManagementBean)): bean
    //#input(void setBean(GlobalCommentManagementBean)): this
    //#output(void setBean(GlobalCommentManagementBean)): this.bean
    //#post(void setBean(GlobalCommentManagementBean)): this.bean == bean
    //#post(void setBean(GlobalCommentManagementBean)): init'ed(this.bean)
    }
    //#GlobalCommentManagement.java:347: end of method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setBean(GlobalCommentManagementBean)

    public int getBulkDeleteCount() {
        return bulkDeleteCount;
    //#GlobalCommentManagement.java:350: method: int org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getBulkDeleteCount()
    //#input(int getBulkDeleteCount()): this
    //#input(int getBulkDeleteCount()): this.bulkDeleteCount
    //#output(int getBulkDeleteCount()): return_value
    //#pre[2] (int getBulkDeleteCount()): init'ed(this.bulkDeleteCount)
    //#post(int getBulkDeleteCount()): return_value == this.bulkDeleteCount
    //#post(int getBulkDeleteCount()): init'ed(return_value)
    //#GlobalCommentManagement.java:350: end of method: int org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getBulkDeleteCount()
    }

    public void setBulkDeleteCount(int bulkDeleteCount) {
        this.bulkDeleteCount = bulkDeleteCount;
    //#GlobalCommentManagement.java:354: method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setBulkDeleteCount(int)
    //#input(void setBulkDeleteCount(int)): bulkDeleteCount
    //#input(void setBulkDeleteCount(int)): this
    //#output(void setBulkDeleteCount(int)): this.bulkDeleteCount
    //#post(void setBulkDeleteCount(int)): this.bulkDeleteCount == bulkDeleteCount
    //#post(void setBulkDeleteCount(int)): init'ed(this.bulkDeleteCount)
    }
    //#GlobalCommentManagement.java:355: end of method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setBulkDeleteCount(int)

    public WeblogEntryComment getFirstComment() {
        return firstComment;
    //#GlobalCommentManagement.java:358: method: WeblogEntryComment org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getFirstComment()
    //#input(WeblogEntryComment getFirstComment()): this
    //#input(WeblogEntryComment getFirstComment()): this.firstComment
    //#output(WeblogEntryComment getFirstComment()): return_value
    //#pre[2] (WeblogEntryComment getFirstComment()): init'ed(this.firstComment)
    //#post(WeblogEntryComment getFirstComment()): return_value == this.firstComment
    //#post(WeblogEntryComment getFirstComment()): init'ed(return_value)
    //#GlobalCommentManagement.java:358: end of method: WeblogEntryComment org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getFirstComment()
    }

    public void setFirstComment(WeblogEntryComment firstComment) {
        this.firstComment = firstComment;
    //#GlobalCommentManagement.java:362: method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setFirstComment(WeblogEntryComment)
    //#input(void setFirstComment(WeblogEntryComment)): firstComment
    //#input(void setFirstComment(WeblogEntryComment)): this
    //#output(void setFirstComment(WeblogEntryComment)): this.firstComment
    //#post(void setFirstComment(WeblogEntryComment)): this.firstComment == firstComment
    //#post(void setFirstComment(WeblogEntryComment)): init'ed(this.firstComment)
    }
    //#GlobalCommentManagement.java:363: end of method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setFirstComment(WeblogEntryComment)

    public WeblogEntryComment getLastComment() {
        return lastComment;
    //#GlobalCommentManagement.java:366: method: WeblogEntryComment org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getLastComment()
    //#input(WeblogEntryComment getLastComment()): this
    //#input(WeblogEntryComment getLastComment()): this.lastComment
    //#output(WeblogEntryComment getLastComment()): return_value
    //#pre[2] (WeblogEntryComment getLastComment()): init'ed(this.lastComment)
    //#post(WeblogEntryComment getLastComment()): return_value == this.lastComment
    //#post(WeblogEntryComment getLastComment()): init'ed(return_value)
    //#GlobalCommentManagement.java:366: end of method: WeblogEntryComment org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getLastComment()
    }

    public void setLastComment(WeblogEntryComment lastComment) {
        this.lastComment = lastComment;
    //#GlobalCommentManagement.java:370: method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setLastComment(WeblogEntryComment)
    //#input(void setLastComment(WeblogEntryComment)): lastComment
    //#input(void setLastComment(WeblogEntryComment)): this
    //#output(void setLastComment(WeblogEntryComment)): this.lastComment
    //#post(void setLastComment(WeblogEntryComment)): this.lastComment == lastComment
    //#post(void setLastComment(WeblogEntryComment)): init'ed(this.lastComment)
    }
    //#GlobalCommentManagement.java:371: end of method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setLastComment(WeblogEntryComment)

    public CommentsPager getPager() {
        return pager;
    //#GlobalCommentManagement.java:374: method: CommentsPager org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getPager()
    //#input(CommentsPager getPager()): this
    //#input(CommentsPager getPager()): this.pager
    //#output(CommentsPager getPager()): return_value
    //#pre[2] (CommentsPager getPager()): init'ed(this.pager)
    //#post(CommentsPager getPager()): return_value == this.pager
    //#post(CommentsPager getPager()): init'ed(return_value)
    //#GlobalCommentManagement.java:374: end of method: CommentsPager org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.getPager()
    }

    public void setPager(CommentsPager pager) {
        this.pager = pager;
    //#GlobalCommentManagement.java:378: method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setPager(CommentsPager)
    //#input(void setPager(CommentsPager)): pager
    //#input(void setPager(CommentsPager)): this
    //#output(void setPager(CommentsPager)): this.pager
    //#post(void setPager(CommentsPager)): this.pager == pager
    //#post(void setPager(CommentsPager)): init'ed(this.pager)
    }
    //#GlobalCommentManagement.java:379: end of method: void org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement.setPager(CommentsPager)
    
}
    //#GlobalCommentManagement.java:: end of class: org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement
