//# 1 errors, 444 messages
//#
/*
    //#TurnoverReferersTask.java:1:1: class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
 * 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.business.runnable;

import java.util.Date;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;


/**
 * Reset referer counts.
 */
public class TurnoverReferersTask extends RollerTaskWithLeasing {
    //#TurnoverReferersTask.java:33: method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()
    //#input(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this
    //#output(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.clientId
    //#output(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.interval
    //#output(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.leaseTime
    //#output(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.startTimeDesc
    //#post(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.clientId == null
    //#post(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.interval == 1_440
    //#post(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.leaseTime == 30
    //#post(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): this.startTimeDesc == &"startOfDay"
    //#unanalyzed(void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()): Effects-of-calling:org.apache.roller.weblogger.business.runnable.RollerTask
    
    private static Log log = LogFactory.getLog(TurnoverReferersTask.class);
    //#TurnoverReferersTask.java:35: method: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init
    //#TurnoverReferersTask.java:35: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getAdjustedTime(Ljava/util/Date;Ljava/lang/String;)Ljava/util/Date;
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getClientId()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getInterval()I
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getLeaseTime()I
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getStartTime(Ljava/util/Date;)Ljava/util/Date;
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getStartTimeDesc()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getTaskProperties()Ljava/util/Properties;
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.init()V
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.run()V
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.runTask()V
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): log
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#output(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.__Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.__Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getAdjustedTime(Ljava/util/Date;Ljava/lang/String;)Ljava/util/Date; == &org/apache/roller/weblogger/business/runnable/RollerTask.getAdjustedTime
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getClientId()Ljava/lang/String; == &getClientId
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getInterval()I == &getInterval
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getLeaseTime()I == &getLeaseTime
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getStartTime(Ljava/util/Date;)Ljava/util/Date; == &getStartTime
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getStartTimeDesc()Ljava/lang/String; == &getStartTimeDesc
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.getTaskProperties()Ljava/util/Properties; == &org/apache/roller/weblogger/business/runnable/RollerTask.getTaskProperties
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.init()V == &init
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.run()V == &org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.run
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): __Dispatch_Table.runTask()V == &runTask
    //#post(org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init): init'ed(log)
    //#TurnoverReferersTask.java:35: end of method: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.org.apache.roller.weblogger.business.runnable.TurnoverReferersTask__static_init
    
    // a unique id for this specific task instance
    // this is meant to be unique for each client in a clustered environment
    private String clientId = null;
    
    // a String description of when to start this task
    private String startTimeDesc = "startOfDay";
    
    // interval at which the task is run, default is 1 day
    private int interval = 1440;
    
    // lease time given to task lock, default is 30 minutes
    private int leaseTime = 30;
    //#TurnoverReferersTask.java:48: end of method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.org.apache.roller.weblogger.business.runnable.TurnoverReferersTask()
    
    
    public String getName() {
        return "TurnoverReferersTask";
    //#TurnoverReferersTask.java:52: method: String org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getName()
    //#output(String getName()): return_value
    //#post(String getName()): return_value == &"TurnoverReferersTask"
    //#TurnoverReferersTask.java:52: end of method: String org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getName()
    }
    
    public String getClientId() {
        return clientId;
    //#TurnoverReferersTask.java:56: method: String org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getClientId()
    //#input(String getClientId()): this
    //#input(String getClientId()): this.clientId
    //#output(String getClientId()): return_value
    //#pre[2] (String getClientId()): init'ed(this.clientId)
    //#post(String getClientId()): return_value == this.clientId
    //#post(String getClientId()): init'ed(return_value)
    //#TurnoverReferersTask.java:56: end of method: String org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getClientId()
    }
    
    public Date getStartTime(Date currentTime) {
        return getAdjustedTime(currentTime, startTimeDesc);
    //#TurnoverReferersTask.java:60: method: Date org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getStartTime(Date)
    //#input(Date getStartTime(Date)): __Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#input(Date getStartTime(Date)): __Descendant_Table[others]
    //#input(Date getStartTime(Date)): __Dispatch_Table.getAdjustedTime(Ljava/util/Date;Ljava/lang/String;)Ljava/util/Date;
    //#input(Date getStartTime(Date)): currentTime
    //#input(Date getStartTime(Date)): this
    //#input(Date getStartTime(Date)): this.__Tag
    //#input(Date getStartTime(Date)): this.startTimeDesc
    //#output(Date getStartTime(Date)): return_value
    //#pre[3] (Date getStartTime(Date)): this.__Tag == org/apache/roller/weblogger/business/runnable/TurnoverReferersTask
    //#pre[4] (Date getStartTime(Date)): init'ed(this.startTimeDesc)
    //#post(Date getStartTime(Date)): init'ed(return_value)
    //#unanalyzed(Date getStartTime(Date)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(Date getStartTime(Date)): Effects-of-calling:org.apache.roller.util.DateUtil:getEndOfDay
    //#unanalyzed(Date getStartTime(Date)): Effects-of-calling:org.apache.roller.util.DateUtil:getEndOfHour
    //#TurnoverReferersTask.java:60: end of method: Date org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getStartTime(Date)
    }
    
    public String getStartTimeDesc() {
        return startTimeDesc;
    //#TurnoverReferersTask.java:64: method: String org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getStartTimeDesc()
    //#input(String getStartTimeDesc()): this
    //#input(String getStartTimeDesc()): this.startTimeDesc
    //#output(String getStartTimeDesc()): return_value
    //#pre[2] (String getStartTimeDesc()): init'ed(this.startTimeDesc)
    //#post(String getStartTimeDesc()): return_value == this.startTimeDesc
    //#post(String getStartTimeDesc()): init'ed(return_value)
    //#TurnoverReferersTask.java:64: end of method: String org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getStartTimeDesc()
    }
    
    public int getInterval() {
        return this.interval;
    //#TurnoverReferersTask.java:68: method: int org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getInterval()
    //#input(int getInterval()): this
    //#input(int getInterval()): this.interval
    //#output(int getInterval()): return_value
    //#pre[2] (int getInterval()): init'ed(this.interval)
    //#post(int getInterval()): return_value == this.interval
    //#post(int getInterval()): init'ed(return_value)
    //#TurnoverReferersTask.java:68: end of method: int org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getInterval()
    }
    
    public int getLeaseTime() {
        return this.leaseTime;
    //#TurnoverReferersTask.java:72: method: int org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getLeaseTime()
    //#input(int getLeaseTime()): this
    //#input(int getLeaseTime()): this.leaseTime
    //#output(int getLeaseTime()): return_value
    //#pre[2] (int getLeaseTime()): init'ed(this.leaseTime)
    //#post(int getLeaseTime()): return_value == this.leaseTime
    //#post(int getLeaseTime()): init'ed(return_value)
    //#TurnoverReferersTask.java:72: end of method: int org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.getLeaseTime()
    }
    
    
    public void init() throws WebloggerException {
        
        // get relevant props
        Properties props = this.getTaskProperties();
    //#TurnoverReferersTask.java:79: method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.init()
    //#input(void init()): "."._tainted
    //#input(void init()): "="._tainted
    //#input(void init()): "Fetching property ["._tainted
    //#input(void init()): "Invalid interval: "._tainted
    //#input(void init()): "Invalid leaseTime: "._tainted
    //#input(void init()): "PingQueueTask"._tainted
    //#input(void init()): "ResetHitCountsTask"._tainted
    //#input(void init()): "ScheduledEntriesTask"._tainted
    //#input(void init()): "TurnoverReferersTask"._tainted
    //#input(void init()): "]"._tainted
    //#input(void init()): "tasks."._tainted
    //#input(void init()): "tasks.clientId"._tainted
    //#input(void init()): __Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#input(void init()): __Descendant_Table[others]
    //#input(void init()): __Dispatch_Table.getName()Ljava/lang/String;
    //#input(void init()): __Dispatch_Table.getTaskProperties()Ljava/util/Properties;
    //#input(void init()): log
    //#input(void init()): org/apache/roller/weblogger/business/pings/PingQueueTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void init()): org/apache/roller/weblogger/business/runnable/ResetHitCountsTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask]
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ResetHitCountsTask]
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing]
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/RollerTask]
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ScheduledEntriesTask]
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[others]
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void init()): org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void init()): org/apache/roller/weblogger/business/runnable/ScheduledEntriesTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void init()): org/apache/roller/weblogger/config/WebloggerConfig.config
    //#input(void init()): org/apache/roller/weblogger/config/WebloggerConfig.log
    //#input(void init()): this
    //#input(void init()): this.__Tag
    //#output(void init()): this.clientId
    //#output(void init()): this.interval
    //#output(void init()): this.leaseTime
    //#output(void init()): this.startTimeDesc
    //#pre[6] (void init()): org/apache/roller/weblogger/config/WebloggerConfig.config != null
    //#pre[7] (void init()): org/apache/roller/weblogger/config/WebloggerConfig.log != null
    //#pre[9] (void init()): this.__Tag == org/apache/roller/weblogger/business/runnable/TurnoverReferersTask
    //#pre[1] (void init()): (soft) log != null
    //#post(void init()): possibly_updated(this.clientId)
    //#post(void init()): possibly_updated(this.interval)
    //#post(void init()): possibly_updated(this.leaseTime)
    //#post(void init()): possibly_updated(this.startTimeDesc)
    //#unanalyzed(void init()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void init()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void init()): Effects-of-calling:getName
    //#unanalyzed(void init()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void init()): Effects-of-calling:java.util.Properties
    //#unanalyzed(void init()): Effects-of-calling:java.util.Properties:keys
    //#unanalyzed(void init()): Effects-of-calling:java.util.Enumeration:hasMoreElements
    //#unanalyzed(void init()): Effects-of-calling:java.util.Enumeration:nextElement
    //#unanalyzed(void init()): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void init()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void init()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void init()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void init()): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void init()): Effects-of-calling:java.util.Properties:getProperty
    //#unanalyzed(void init()): Effects-of-calling:java.util.Properties:setProperty
    //#test_vector(void init()): java.util.Properties:getProperty(...)@104: Addr_Set{null}, Inverse{null}
    //#test_vector(void init()): java.util.Properties:getProperty(...)@82: Addr_Set{null}, Inverse{null}
    //#test_vector(void init()): java.util.Properties:getProperty(...)@88: Addr_Set{null}, Inverse{null}
    //#test_vector(void init()): java.util.Properties:getProperty(...)@94: Addr_Set{null}, Inverse{null}
        
        // extract clientId
        String client = props.getProperty("clientId");
        if(client != null) {
            this.clientId = client;
        }
        
        // extract start time
        String startTimeStr = props.getProperty("startTime");
        if(startTimeStr != null) {
            this.startTimeDesc = startTimeStr;
        }
        
        // extract interval
        String intervalStr = props.getProperty("interval");
        if(intervalStr != null) {
            try {
                this.interval = Integer.parseInt(intervalStr);
            } catch (NumberFormatException ex) {
                log.warn("Invalid interval: "+intervalStr);
    //#TurnoverReferersTask.java:99: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:warn(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void init()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:warn(Object)
            }
        }
        
        // extract lease time
        String leaseTimeStr = props.getProperty("leaseTime");
        if(leaseTimeStr != null) {
            try {
                this.leaseTime = Integer.parseInt(leaseTimeStr);
            } catch (NumberFormatException ex) {
                log.warn("Invalid leaseTime: "+leaseTimeStr);
    //#TurnoverReferersTask.java:109: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:warn(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void init()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:warn(Object)
            }
        }
    }
    //#TurnoverReferersTask.java:112: end of method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.init()
    
    
    /**
     * Execute the task.
     */
    public void runTask() {
        
        try {
            log.info("task started");
    //#TurnoverReferersTask.java:121: method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.runTask()
    //#TurnoverReferersTask.java:121: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:info(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:info(Object)
    //#TurnoverReferersTask.java:121: Warning: suspicious precondition
    //#    the precondition for org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void runTask()
    //#    suspicious precondition index: [3]
    //#input(void runTask()): log
    //#input(void runTask()): org/apache/roller/weblogger/business/BookmarkManager.__Descendant_Table[org/apache/roller/weblogger/business/BookmarkManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/BookmarkManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/BookmarkManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/BookmarkManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/FileManager.__Descendant_Table[org/apache/roller/weblogger/business/FileManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/FileManager.__Descendant_Table[org/apache/roller/weblogger/business/FileManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/FileManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/FileManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/FileManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/GuiceWebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void runTask()): org/apache/roller/weblogger/business/UserManager.__Descendant_Table[org/apache/roller/weblogger/business/UserManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/UserManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/UserManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/UserManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/WeblogManager.__Descendant_Table[org/apache/roller/weblogger/business/WeblogManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/WeblogManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/WeblogManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/WeblogManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/Weblogger]
    //#input(void runTask()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.flush()V
    //#input(void runTask()): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.getRefererManager()Lorg/apache/roller/weblogger/business/referrers/RefererManager;
    //#input(void runTask()): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.autoPingManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.autoPingManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.bookmarkManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.bookmarkManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.fileManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.fileManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingQueueManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingQueueManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingTargetManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingTargetManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pluginManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pluginManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager.strategy
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager.strategy.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager.strategy.emf
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager.strategy.threadLocalEntityManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.strategy
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.strategy.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.strategy.emf
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.strategy.threadLocalEntityManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.threadManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.threadManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.userManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.userManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.weblogManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.weblogManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.flush()V
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.getRefererManager()Lorg/apache/roller/weblogger/business/referrers/RefererManager;
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerImpl.log
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/GuiceWebloggerProvider]
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerProvider]
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.flush()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.getNamedUpdate(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.__Dispatch_Table.clearDayHits()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.__Dispatch_Table.clearReferrers()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.flush()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.getRefererManager()Lorg/apache/roller/weblogger/business/referrers/RefererManager;
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[org/apache/roller/weblogger/business/pings/AutoPingManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingTargetManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/plugins/PluginManager.__Descendant_Table[org/apache/roller/weblogger/business/plugins/PluginManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/plugins/PluginManager.__Descendant_Table[org/apache/roller/weblogger/business/plugins/PluginManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/plugins/PluginManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/plugins/PluginManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/plugins/PluginManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/referrers/RefererManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/referrers/RefererManager.__Descendant_Table[org/apache/roller/weblogger/business/referrers/RefererManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/referrers/RefererManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/referrers/RefererManager.__Dispatch_Table.clearReferrers()V
    //#input(void runTask()): org/apache/roller/weblogger/business/referrers/RefererManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ThreadManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ThreadManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.__Dispatch_Table.release()V
    //#pre[1] (void runTask()): log != null
    //#pre[2] (void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider != null
    //#pre[3] (void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag in {org/apache/roller/weblogger/business/GuiceWebloggerProvider, org/apache/roller/weblogger/business/WebloggerProvider}
    //#pre[4] (void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance != null
    //#pre[5] (void runTask()): (soft) org/apache/roller/weblogger/business/WebloggerImpl.log != null
    //#presumption(void runTask()): getRefererManager(...).__Tag == org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl
    //#presumption(void runTask()): getRefererManager(...).strategy != null
    //#presumption(void runTask()): getRefererManager(...).strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#presumption(void runTask()): getRefererManager(...).strategy.emf != null
    //#presumption(void runTask()): getRefererManager(...).strategy.threadLocalEntityManager != null
    //#presumption(void runTask()): getWeblogger(...).__Tag in {org/apache/roller/weblogger/business/Weblogger, org/apache/roller/weblogger/business/WebloggerImpl, org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl}
    //#presumption(void runTask()): getWeblogger(...).__Tag in {org/apache/roller/weblogger/business/Weblogger, org/apache/roller/weblogger/business/WebloggerImpl, org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl}
    //#presumption(void runTask()): getWeblogger(...).__Tag in {org/apache/roller/weblogger/business/Weblogger, org/apache/roller/weblogger/business/WebloggerImpl, org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl}
    //#presumption(void runTask()): getWeblogger(...).autoPingManager != null
    //#presumption(void runTask()): getWeblogger(...).autoPingManager != null
    //#presumption(void runTask()): getWeblogger(...).autoPingManager != null
    //#presumption(void runTask()): getWeblogger(...).autoPingManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl, org/apache/roller/weblogger/business/pings/AutoPingManager}
    //#presumption(void runTask()): getWeblogger(...).autoPingManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl, org/apache/roller/weblogger/business/pings/AutoPingManager}
    //#presumption(void runTask()): getWeblogger(...).autoPingManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl, org/apache/roller/weblogger/business/pings/AutoPingManager}
    //#presumption(void runTask()): getWeblogger(...).bookmarkManager != null
    //#presumption(void runTask()): getWeblogger(...).bookmarkManager != null
    //#presumption(void runTask()): getWeblogger(...).bookmarkManager != null
    //#presumption(void runTask()): getWeblogger(...).bookmarkManager.__Tag in {org/apache/roller/weblogger/business/BookmarkManager, org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).bookmarkManager.__Tag in {org/apache/roller/weblogger/business/BookmarkManager, org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).bookmarkManager.__Tag in {org/apache/roller/weblogger/business/BookmarkManager, org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).fileManager != null
    //#presumption(void runTask()): getWeblogger(...).fileManager != null
    //#presumption(void runTask()): getWeblogger(...).fileManager != null
    //#presumption(void runTask()): getWeblogger(...).fileManager.__Tag in {org/apache/roller/weblogger/business/FileManager, org/apache/roller/weblogger/business/FileManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).fileManager.__Tag in {org/apache/roller/weblogger/business/FileManager, org/apache/roller/weblogger/business/FileManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).fileManager.__Tag in {org/apache/roller/weblogger/business/FileManager, org/apache/roller/weblogger/business/FileManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).pingQueueManager != null
    //#presumption(void runTask()): getWeblogger(...).pingQueueManager != null
    //#presumption(void runTask()): getWeblogger(...).pingQueueManager != null
    //#presumption(void runTask()): getWeblogger(...).pingQueueManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl, org/apache/roller/weblogger/business/pings/PingQueueManager}
    //#presumption(void runTask()): getWeblogger(...).pingQueueManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl, org/apache/roller/weblogger/business/pings/PingQueueManager}
    //#presumption(void runTask()): getWeblogger(...).pingQueueManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl, org/apache/roller/weblogger/business/pings/PingQueueManager}
    //#presumption(void runTask()): getWeblogger(...).pingTargetManager != null
    //#presumption(void runTask()): getWeblogger(...).pingTargetManager != null
    //#presumption(void runTask()): getWeblogger(...).pingTargetManager != null
    //#presumption(void runTask()): getWeblogger(...).pingTargetManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl, org/apache/roller/weblogger/business/pings/PingTargetManager}
    //#presumption(void runTask()): getWeblogger(...).pingTargetManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl, org/apache/roller/weblogger/business/pings/PingTargetManager}
    //#presumption(void runTask()): getWeblogger(...).pingTargetManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl, org/apache/roller/weblogger/business/pings/PingTargetManager}
    //#presumption(void runTask()): getWeblogger(...).pluginManager != null
    //#presumption(void runTask()): getWeblogger(...).pluginManager != null
    //#presumption(void runTask()): getWeblogger(...).pluginManager != null
    //#presumption(void runTask()): getWeblogger(...).pluginManager.__Tag in {org/apache/roller/weblogger/business/plugins/PluginManager, org/apache/roller/weblogger/business/plugins/PluginManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).pluginManager.__Tag in {org/apache/roller/weblogger/business/plugins/PluginManager, org/apache/roller/weblogger/business/plugins/PluginManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).pluginManager.__Tag in {org/apache/roller/weblogger/business/plugins/PluginManager, org/apache/roller/weblogger/business/plugins/PluginManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).refererManager != null
    //#presumption(void runTask()): getWeblogger(...).refererManager != null
    //#presumption(void runTask()): getWeblogger(...).refererManager != null
    //#presumption(void runTask()): getWeblogger(...).refererManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl, org/apache/roller/weblogger/business/referrers/RefererManager}
    //#presumption(void runTask()): getWeblogger(...).refererManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl, org/apache/roller/weblogger/business/referrers/RefererManager}
    //#presumption(void runTask()): getWeblogger(...).refererManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl, org/apache/roller/weblogger/business/referrers/RefererManager}
    //#presumption(void runTask()): getWeblogger(...).threadManager != null
    //#presumption(void runTask()): getWeblogger(...).threadManager != null
    //#presumption(void runTask()): getWeblogger(...).threadManager != null
    //#presumption(void runTask()): getWeblogger(...).threadManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl, org/apache/roller/weblogger/business/runnable/ThreadManager, org/apache/roller/weblogger/business/runnable/ThreadManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).threadManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl, org/apache/roller/weblogger/business/runnable/ThreadManager, org/apache/roller/weblogger/business/runnable/ThreadManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).threadManager.__Tag in {org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl, org/apache/roller/weblogger/business/runnable/ThreadManager, org/apache/roller/weblogger/business/runnable/ThreadManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).userManager != null
    //#presumption(void runTask()): getWeblogger(...).userManager != null
    //#presumption(void runTask()): getWeblogger(...).userManager != null
    //#presumption(void runTask()): getWeblogger(...).userManager.__Tag in {org/apache/roller/weblogger/business/UserManager, org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).userManager.__Tag in {org/apache/roller/weblogger/business/UserManager, org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).userManager.__Tag in {org/apache/roller/weblogger/business/UserManager, org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).weblogManager != null
    //#presumption(void runTask()): getWeblogger(...).weblogManager != null
    //#presumption(void runTask()): getWeblogger(...).weblogManager != null
    //#presumption(void runTask()): getWeblogger(...).weblogManager.__Tag in {org/apache/roller/weblogger/business/WeblogManager, org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).weblogManager.__Tag in {org/apache/roller/weblogger/business/WeblogManager, org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl}
    //#presumption(void runTask()): getWeblogger(...).weblogManager.__Tag in {org/apache/roller/weblogger/business/WeblogManager, org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl}
    //#presumption(void runTask()): roller.__Tag in {org/apache/roller/weblogger/business/Weblogger, org/apache/roller/weblogger/business/WebloggerImpl, org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl}
    //#presumption(void runTask()): roller.refererManager != null
    //#presumption(void runTask()): roller.strategy != null
    //#presumption(void runTask()): roller.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#presumption(void runTask()): roller.strategy.emf@124 != null
    //#presumption(void runTask()): roller.strategy.threadLocalEntityManager != null
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManager:createNamedQuery
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.Query:executeUpdate
    //#unanalyzed(void runTask()): Effects-of-calling:getWeblogger
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityTransaction:commit
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.roller.RollerException
    //#unanalyzed(void runTask()): Effects-of-calling:release
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityTransaction:rollback
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManager:close
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.commons.logging.Log:error
            
            Weblogger roller = WebloggerFactory.getWeblogger();
            roller.getRefererManager().clearReferrers();
            roller.flush();
            
            log.info("task completed");
    //#TurnoverReferersTask.java:127: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:info(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:info(Object)
            
        } catch (WebloggerException e) {
            log.error("Error while checking for referer turnover", e);
    //#TurnoverReferersTask.java:130: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        } catch (Exception ee) {
            log.error("unexpected exception", ee);
    //#TurnoverReferersTask.java:132: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        } finally {
            // always release
            WebloggerFactory.getWeblogger().release();
        }
        
    }
    //#TurnoverReferersTask.java:138: end of method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.runTask()
    
    
    /**
     * Main method so that this task may be run from outside the webapp.
     */
    public static void main(String[] args) throws Exception {
        try {
            TurnoverReferersTask task = new TurnoverReferersTask();
    //#TurnoverReferersTask.java:146: method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.main(String[])
    //#TurnoverReferersTask.java:146: ?never returns: void main(String[]) always exits the program
    //#input(void main(String[])): "."._tainted
    //#input(void main(String[])): "="._tainted
    //#input(void main(String[])): "Fetching property ["._tainted
    //#input(void main(String[])): "Invalid interval: "._tainted
    //#input(void main(String[])): "Invalid leaseTime: "._tainted
    //#input(void main(String[])): "PingQueueTask"._tainted
    //#input(void main(String[])): "ResetHitCountsTask"._tainted
    //#input(void main(String[])): "ScheduledEntriesTask"._tainted
    //#input(void main(String[])): "TurnoverReferersTask"._tainted
    //#input(void main(String[])): "]"._tainted
    //#input(void main(String[])): "tasks."._tainted
    //#input(void main(String[])): "tasks.clientId"._tainted
    //#input(void main(String[])): __Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#input(void main(String[])): __Descendant_Table[others]
    //#input(void main(String[])): __Dispatch_Table.getName()Ljava/lang/String;
    //#input(void main(String[])): __Dispatch_Table.getTaskProperties()Ljava/util/Properties;
    //#input(void main(String[])): __Dispatch_Table.init()V
    //#input(void main(String[])): log
    //#input(void main(String[])): org/apache/roller/weblogger/business/pings/PingQueueTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/ResetHitCountsTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask]
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ResetHitCountsTask]
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing]
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/RollerTask]
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ScheduledEntriesTask]
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/runnable/TurnoverReferersTask]
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[others]
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void main(String[])): org/apache/roller/weblogger/business/runnable/ScheduledEntriesTask.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void main(String[])): org/apache/roller/weblogger/config/WebloggerConfig.config
    //#input(void main(String[])): org/apache/roller/weblogger/config/WebloggerConfig.log
    //#pre[1] (void main(String[])): (soft) log != null
    //#pre[3] (void main(String[])): (soft) org/apache/roller/weblogger/config/WebloggerConfig.config != null
    //#pre[4] (void main(String[])): (soft) org/apache/roller/weblogger/config/WebloggerConfig.log != null
    //#unanalyzed(void main(String[])): Effects-of-calling:org.apache.roller.weblogger.business.runnable.RollerTaskWithLeasing
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void main(String[])): Effects-of-calling:getTaskProperties
    //#unanalyzed(void main(String[])): Effects-of-calling:java.util.Properties:getProperty
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void main(String[])): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(void main(String[])): Effects-of-calling:org.apache.roller.weblogger.business.runnable.RollerTask
    //#unanalyzed(void main(String[])): Effects-of-calling:getName
    //#unanalyzed(void main(String[])): Effects-of-calling:java.util.Properties
    //#unanalyzed(void main(String[])): Effects-of-calling:java.util.Properties:keys
    //#unanalyzed(void main(String[])): Effects-of-calling:java.util.Enumeration:hasMoreElements
    //#unanalyzed(void main(String[])): Effects-of-calling:java.util.Enumeration:nextElement
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void main(String[])): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void main(String[])): Effects-of-calling:java.util.Properties:setProperty
            task.init();
            task.run();
    //#TurnoverReferersTask.java:148: Warning: call too complex - analysis skipped
    //#    -- call on void run()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void main(String[])
    //#    unanalyzed callee: void run()
            System.exit(0);
        } catch (WebloggerException ex) {
            ex.printStackTrace();
    //#TurnoverReferersTask.java:151: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.WebloggerException:printStackTrace()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
    //#    method: void main(String[])
    //#    unanalyzed callee: void org.apache.roller.weblogger.WebloggerException:printStackTrace()
            System.exit(-1);
        }
    }
    //#TurnoverReferersTask.java:154: end of method: void org.apache.roller.weblogger.business.runnable.TurnoverReferersTask.main(String[])
    
}
    //#TurnoverReferersTask.java:: end of class: org.apache.roller.weblogger.business.runnable.TurnoverReferersTask
