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

import java.util.Calendar;
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.runnable.RollerTaskWithLeasing;
import org.apache.roller.weblogger.config.PingConfig;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;


/**
 * Task for processing the ping queue at fixed intervals.   This is set up during context initialization by {@link
 * org.apache.roller.weblogger.ui.core.RollerContext}.  The queue processing interval is currently set from the configuration {@link
 * org.apache.roller.weblogger.config.PingConfig} at startup time only.
 *
 * @author <a href="mailto:anil@busybuddha.org">Anil Gangolli</a>
 */
public class PingQueueTask extends RollerTaskWithLeasing {
    //#PingQueueTask.java:40: method: void org.apache.roller.weblogger.business.pings.PingQueueTask.org.apache.roller.weblogger.business.pings.PingQueueTask()
    //#input(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this
    //#output(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.clientId
    //#output(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.interval
    //#output(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.leaseTime
    //#output(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.startTimeDesc
    //#post(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.clientId == null
    //#post(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.interval == 5
    //#post(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.leaseTime == 30
    //#post(void org.apache.roller.weblogger.business.pings.PingQueueTask()): this.startTimeDesc == &"immediate"
    //#unanalyzed(void org.apache.roller.weblogger.business.pings.PingQueueTask()): Effects-of-calling:org.apache.roller.weblogger.business.runnable.RollerTask
    
    private static Log log = LogFactory.getLog(PingQueueTask.class);
    //#PingQueueTask.java:42: method: org.apache.roller.weblogger.business.pings.PingQueueTask.org.apache.roller.weblogger.business.pings.PingQueueTask__static_init
    //#PingQueueTask.java:42: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: org.apache.roller.weblogger.business.pings.PingQueueTask__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask]
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getAdjustedTime(Ljava/util/Date;Ljava/lang/String;)Ljava/util/Date;
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getClientId()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getInterval()I
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getLeaseTime()I
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getStartTime(Ljava/util/Date;)Ljava/util/Date;
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getStartTimeDesc()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getTaskProperties()Ljava/util/Properties;
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.init()V
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.run()V
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.runTask()V
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): log
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask]
    //#output(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask]
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTask.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__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.pings.PingQueueTask__static_init): __Dispatch_Table.getClientId()Ljava/lang/String; == &getClientId
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getInterval()I == &getInterval
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getLeaseTime()I == &getLeaseTime
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getStartTime(Ljava/util/Date;)Ljava/util/Date; == &getStartTime
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getStartTimeDesc()Ljava/lang/String; == &getStartTimeDesc
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.getTaskProperties()Ljava/util/Properties; == &org/apache/roller/weblogger/business/runnable/RollerTask.getTaskProperties
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.init()V == &init
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.run()V == &org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.run
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): __Dispatch_Table.runTask()V == &runTask
    //#post(org.apache.roller.weblogger.business.pings.PingQueueTask__static_init): init'ed(log)
    //#PingQueueTask.java:42: end of method: org.apache.roller.weblogger.business.pings.PingQueueTask.org.apache.roller.weblogger.business.pings.PingQueueTask__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 = "immediate";
    
    // interval at which the task is run, default is 5 minutes
    private int interval = 5;
    
    // lease time given to task lock, default is 30 minutes
    private int leaseTime = 30;
    //#PingQueueTask.java:55: end of method: void org.apache.roller.weblogger.business.pings.PingQueueTask.org.apache.roller.weblogger.business.pings.PingQueueTask()
    
    
    public String getName() {
        return "PingQueueTask";
    //#PingQueueTask.java:59: method: String org.apache.roller.weblogger.business.pings.PingQueueTask.getName()
    //#output(String getName()): return_value
    //#post(String getName()): return_value == &"PingQueueTask"
    //#PingQueueTask.java:59: end of method: String org.apache.roller.weblogger.business.pings.PingQueueTask.getName()
    }
    
    public String getClientId() {
        return clientId;
    //#PingQueueTask.java:63: method: String org.apache.roller.weblogger.business.pings.PingQueueTask.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)
    //#PingQueueTask.java:63: end of method: String org.apache.roller.weblogger.business.pings.PingQueueTask.getClientId()
    }
    
    public Date getStartTime(Date currentTime) {
        return getAdjustedTime(currentTime, startTimeDesc);
    //#PingQueueTask.java:67: method: Date org.apache.roller.weblogger.business.pings.PingQueueTask.getStartTime(Date)
    //#input(Date getStartTime(Date)): __Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueTask]
    //#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/pings/PingQueueTask
    //#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
    //#PingQueueTask.java:67: end of method: Date org.apache.roller.weblogger.business.pings.PingQueueTask.getStartTime(Date)
    }
    
    public String getStartTimeDesc() {
        return startTimeDesc;
    //#PingQueueTask.java:71: method: String org.apache.roller.weblogger.business.pings.PingQueueTask.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)
    //#PingQueueTask.java:71: end of method: String org.apache.roller.weblogger.business.pings.PingQueueTask.getStartTimeDesc()
    }
    
    public int getInterval() {
        return this.interval;
    //#PingQueueTask.java:75: method: int org.apache.roller.weblogger.business.pings.PingQueueTask.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)
    //#PingQueueTask.java:75: end of method: int org.apache.roller.weblogger.business.pings.PingQueueTask.getInterval()
    }
    
    public int getLeaseTime() {
        return this.leaseTime;
    //#PingQueueTask.java:79: method: int org.apache.roller.weblogger.business.pings.PingQueueTask.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)
    //#PingQueueTask.java:79: end of method: int org.apache.roller.weblogger.business.pings.PingQueueTask.getLeaseTime()
    }
    
    
    public void init() throws WebloggerException {
        
        // get relevant props
        Properties props = this.getTaskProperties();
    //#PingQueueTask.java:86: method: void org.apache.roller.weblogger.business.pings.PingQueueTask.init()
    //#PingQueueTask.java:86: 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.pings.PingQueueTask
    //#    method: void init()
    //#    suspicious precondition index: [8]
    //#    Attribs:  Soft
    //#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/pings/PingQueueTask]
    //#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/GuiceWebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void init()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerImpl]
    //#input(void init()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/Weblogger]
    //#input(void init()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl]
    //#input(void init()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[others]
    //#input(void init()): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.__Tag
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingQueueManager
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/GuiceWebloggerProvider]
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerProvider]
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[others]
    //#input(void init()): org/apache/roller/weblogger/business/WebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void init()): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void init()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.logger
    //#input(void init()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance
    //#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/business/runnable/TurnoverReferersTask.__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()): new PingQueueProcessor(init#1*) num objects
    //#output(void init()): new PingQueueProcessor(init#1*).__Tag
    //#output(void init()): new PingQueueProcessor(init#1*).pingQueueMgr
    //#output(void init()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance
    //#output(void init()): this.clientId
    //#output(void init()): this.interval
    //#output(void init()): this.leaseTime
    //#output(void init()): this.startTimeDesc
    //#new obj(void init()): new PingQueueProcessor(init#1*)
    //#pre[2] (void init()): init'ed(org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance)
    //#pre[12] (void init()): org/apache/roller/weblogger/config/WebloggerConfig.config != null
    //#pre[13] (void init()): org/apache/roller/weblogger/config/WebloggerConfig.log != null
    //#pre[15] (void init()): this.__Tag == org/apache/roller/weblogger/business/pings/PingQueueTask
    //#pre[1] (void init()): (soft) log != null
    //#pre[7] (void init()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider != null
    //#pre[8] (void init()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag in {org/apache/roller/weblogger/business/GuiceWebloggerProvider, org/apache/roller/weblogger/business/WebloggerProvider}
    //#pre[9] (void init()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance != null
    //#post(void init()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance == One-of{old org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance, &new PingQueueProcessor(init#1*)}
    //#post(void init()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance != 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)
    //#post(void init()): new PingQueueProcessor(init#1*) num objects <= 1
    //#post(void init()): init'ed(new PingQueueProcessor(init#1*).__Tag)
    //#post(void init()): init'ed(new PingQueueProcessor(init#1*).pingQueueMgr)
    //#unanalyzed(void init()): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void init()): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(void init()): Effects-of-calling:org.apache.commons.logging.Log:isDebugEnabled
    //#unanalyzed(void init()): Effects-of-calling:getWeblogger
    //#unanalyzed(void init()): Effects-of-calling:getPingQueueManager
    //#unanalyzed(void init()): Effects-of-calling:getName
    //#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:java.lang.StringBuilder:toString
    //#unanalyzed(void init()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void init()): Effects-of-calling:java.util.Properties:getProperty
    //#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.util.Properties:setProperty
    //#test_vector(void init()): java.util.Properties:getProperty(...)@101: Addr_Set{null}, Inverse{null}
    //#test_vector(void init()): java.util.Properties:getProperty(...)@111: Addr_Set{null}, Inverse{null}
    //#test_vector(void init()): java.util.Properties:getProperty(...)@89: Addr_Set{null}, Inverse{null}
    //#test_vector(void init()): java.util.Properties:getProperty(...)@95: 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);
    //#PingQueueTask.java:106: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:warn(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    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);
    //#PingQueueTask.java:116: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:warn(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void init()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:warn(Object)
            }
        }
        
        // initialize queue processor
        PingQueueProcessor.init();
    }
    //#PingQueueTask.java:122: end of method: void org.apache.roller.weblogger.business.pings.PingQueueTask.init()
    

    /**
     * Run the task once.
     */
    public void runTask() {
        
        try {
            log.debug("task started");
    //#PingQueueTask.java:131: method: void org.apache.roller.weblogger.business.pings.PingQueueTask.runTask()
    //#PingQueueTask.java:131: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
    //#PingQueueTask.java:131: 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.pings.PingQueueTask
    //#    method: void runTask()
    //#    suspicious precondition index: [3]
    //#    Attribs:  Soft
    //#PingQueueTask.java:131: Warning: suspicious precondition
    //#    the precondition for org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void runTask()
    //#    suspicious precondition index: [17]
    //#    Attribs:  Soft
    //#input(void runTask()): " with variant options "._tainted
    //#input(void runTask()): ""._tainted
    //#input(void runTask()): "' ("._tainted
    //#input(void runTask()): "' for website '"._tainted
    //#input(void runTask()): "' is not an integer value.  Using default value: "._tainted
    //#input(void runTask()): "' is not present in the configuration.  Using default value: "._tainted
    //#input(void runTask()): "' is outside the required range ("._tainted
    //#input(void runTask()): ") for "._tainted
    //#input(void runTask()): ")"._tainted
    //#input(void runTask()): ").  Using default value: "._tainted
    //#input(void runTask()): ", "._tainted
    //#input(void runTask()): ": ["._tainted
    //#input(void runTask()): "; proceeding with stand-in representative."._tainted
    //#input(void runTask()): "="._tainted
    //#input(void runTask()): "ERROR: PingConfig property '"._tainted
    //#input(void runTask()): "Error on ping attempt ("._tainted
    //#input(void runTask()): "Executing ping to '"._tainted
    //#input(void runTask()): "Fetching property ["._tainted
    //#input(void runTask()): "Invalid ping result of type: "._tainted
    //#input(void runTask()): "Logging simulated ping for ping queue entry "._tainted
    //#input(void runTask()): "Ping result is: "._tainted
    //#input(void runTask()): "PingConfig property '"._tainted
    //#input(void runTask()): "Processed ping: "._tainted
    //#input(void runTask()): "Processing ping queue entry: "._tainted
    //#input(void runTask()): "Removing ping queue entry: "._tainted
    //#input(void runTask()): "Storing ping queue entry: "._tainted
    //#input(void runTask()): "Trouble accessing property: "._tainted
    //#input(void runTask()): "]"._tainted
    //#input(void runTask()): "].  Entry will be REMOVED from ping queue."._tainted
    //#input(void runTask()): "]. Will re-queue for later attempts."._tainted
    //#input(void runTask()): "fetched property ["._tainted
    //#input(void runTask()): "pings.logOnly"._tainted
    //#input(void runTask()): "pings.maxPingAttempts"._tainted
    //#input(void runTask()): "pings.suspendPingProcessing"._tainted
    //#input(void runTask()): "site.absoluteurl"._tainted
    //#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/PropertiesManager.__Descendant_Table[org/apache/roller/weblogger/business/PropertiesManager]
    //#input(void runTask()): org/apache/roller/weblogger/business/PropertiesManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl]
    //#input(void runTask()): org/apache/roller/weblogger/business/PropertiesManager.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/PropertiesManager.__Dispatch_Table.getProperty(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/RuntimeConfigProperty;
    //#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.getPropertiesManager()Lorg/apache/roller/weblogger/business/PropertiesManager;
    //#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.propertiesManager
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.strategy
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.strategy.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.strategy.threadLocalEntityManager
    //#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.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.getPropertiesManager()Lorg/apache/roller/weblogger/business/PropertiesManager;
    //#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.getNamedQuery(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.load(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.remove(Ljava/lang/Object;)V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.store(Ljava/lang/Object;)Ljava/lang/Object;
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.javax.persistence.FlushModeType.COMMIT
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.getAllQueueEntries()Ljava/util/List;
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.removeQueueEntry(Lorg/apache/roller/weblogger/pojos/PingQueueEntry;)V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.saveQueueEntry(Lorg/apache/roller/weblogger/pojos/PingQueueEntry;)V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.log
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.__Dispatch_Table.getProperty(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/RuntimeConfigProperty;
    //#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.getPropertiesManager()Lorg/apache/roller/weblogger/business/PropertiesManager;
    //#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.getAllQueueEntries()Ljava/util/List;
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Dispatch_Table.release()V
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Dispatch_Table.removeQueueEntry(Lorg/apache/roller/weblogger/pojos/PingQueueEntry;)V
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Dispatch_Table.saveQueueEntry(Lorg/apache/roller/weblogger/pojos/PingQueueEntry;)V
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueProcessor]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.__Dispatch_Table.processQueue()V
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.logger
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy.__Tag
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy.emf
    //#input(void runTask()): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy.threadLocalEntityManager
    //#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/pings/WeblogUpdatePinger.logger
    //#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.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
    //#input(void runTask()): org/apache/roller/weblogger/config/PingConfig.configuredVariants
    //#input(void runTask()): org/apache/roller/weblogger/config/PingConfig.java.util.Collections.EMPTY_SET
    //#input(void runTask()): org/apache/roller/weblogger/config/PingConfig.java.util.Collections.EMPTY_SET._tainted
    //#input(void runTask()): org/apache/roller/weblogger/config/PingConfig.logger
    //#input(void runTask()): org/apache/roller/weblogger/config/WebloggerConfig.config
    //#input(void runTask()): org/apache/roller/weblogger/config/WebloggerConfig.log
    //#input(void runTask()): org/apache/roller/weblogger/config/WebloggerRuntimeConfig.absoluteContextURL
    //#input(void runTask()): org/apache/roller/weblogger/config/WebloggerRuntimeConfig.log
    //#input(void runTask()): org/apache/roller/weblogger/pojos/PingQueueEntry.__Descendant_Table[org/apache/roller/weblogger/pojos/PingQueueEntry]
    //#input(void runTask()): org/apache/roller/weblogger/pojos/PingQueueEntry.__Descendant_Table[others]
    //#input(void runTask()): org/apache/roller/weblogger/pojos/PingQueueEntry.__Dispatch_Table.getAttempts()I
    //#input(void runTask()): org/apache/roller/weblogger/pojos/PingQueueEntry.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(void runTask()): org/apache/roller/weblogger/pojos/PingQueueEntry.__Dispatch_Table.getWebsite()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(void runTask()): org/apache/roller/weblogger/pojos/PingQueueEntry.__Dispatch_Table.incrementAttempts()I
    //#input(void runTask()): org/apache/roller/weblogger/pojos/PingQueueEntry.pcInheritedFieldCount
    //#pre[1] (void runTask()): log != null
    //#pre[2] (void runTask()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider != null
    //#pre[3] (void runTask()): (soft) 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()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance != null
    //#pre[12] (void runTask()): (soft) org/apache/roller/weblogger/business/WebloggerImpl.log != null
    //#pre[13] (void runTask()): (soft) org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.log != null
    //#pre[14] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance != null
    //#pre[15] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.__Tag == org/apache/roller/weblogger/business/pings/PingQueueProcessor
    //#pre[16] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr != null
    //#pre[17] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.__Tag in {org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl, org/apache/roller/weblogger/business/pings/PingQueueManager}
    //#pre[18] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy != null
    //#pre[19] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[20] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy.emf != null
    //#pre[21] (void runTask()): (soft) org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance.pingQueueMgr.strategy.threadLocalEntityManager != null
    //#pre[22] (void runTask()): (soft) org/apache/roller/weblogger/config/WebloggerConfig.config != null
    //#pre[23] (void runTask()): (soft) org/apache/roller/weblogger/config/WebloggerConfig.log != null
    //#pre[24] (void runTask()): (soft) init'ed(org/apache/roller/weblogger/config/WebloggerRuntimeConfig.absoluteContextURL)
    //#pre[25] (void runTask()): (soft) org/apache/roller/weblogger/config/WebloggerRuntimeConfig.log != null
    //#pre[26] (void runTask()): (soft) org/apache/roller/weblogger/pojos/PingQueueEntry.pcInheritedFieldCount <= 4_294_967_291
    //#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(...).__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(...).strategy != null
    //#presumption(void runTask()): getWeblogger(...).strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#presumption(void runTask()): getWeblogger(...).strategy.emf != null
    //#presumption(void runTask()): getWeblogger(...).strategy.threadLocalEntityManager != null
    //#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}
    //#unanalyzed(void runTask()): Effects-of-calling:getMaxPingAttempts
    //#unanalyzed(void runTask()): Effects-of-calling:java.net.UnknownHostException:instanceof
    //#unanalyzed(void runTask()): Effects-of-calling:java.net.MalformedURLException:instanceof
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.openjpa.enhance.StateManager:accessingField
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Exception:getMessage
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void runTask()): Effects-of-calling:saveQueueEntry
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(void runTask()): Effects-of-calling:removeQueueEntry
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.commons.logging.Log:isDebugEnabled
    //#unanalyzed(void runTask()): Effects-of-calling:getLogPingsOnly
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Boolean:booleanValue
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Object:getClass
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Class:getName
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:getAbsoluteURL
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.roller.weblogger.pojos.PingTarget:getPingUrl
    //#unanalyzed(void runTask()): Effects-of-calling:getVariantOptions
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.Set:contains
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:getName
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.Set:isEmpty
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.xmlrpc.client.XmlRpcClientConfigImpl
    //#unanalyzed(void runTask()): Effects-of-calling:java.net.URL
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.xmlrpc.client.XmlRpcClientConfigImpl:setServerURL
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.xmlrpc.client.XmlRpcClient
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.xmlrpc.client.XmlRpcClient:setConfig
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.xmlrpc.client.XmlRpcClient:execute
    //#unanalyzed(void runTask()): Effects-of-calling:getSuspendPingProcessing
    //#unanalyzed(void runTask()): Effects-of-calling:getAbsoluteContextURL
    //#unanalyzed(void runTask()): Effects-of-calling:getAllQueueEntries
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#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:java.lang.String:trim
    //#unanalyzed(void runTask()): Effects-of-calling:java.util.Properties:getProperty
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManager:contains
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManager:persist
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManager:remove
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.Boolean:valueOf
    //#unanalyzed(void runTask()): Effects-of-calling:getBooleanProperty
    //#unanalyzed(void runTask()): Effects-of-calling:getWeblogger
    //#unanalyzed(void runTask()): Effects-of-calling:getPropertiesManager
    //#unanalyzed(void runTask()): Effects-of-calling:getProperty
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.EntityManager:find
    //#unanalyzed(void runTask()): Effects-of-calling:org.apache.roller.weblogger.pojos.RuntimeConfigProperty:getValue
    //#unanalyzed(void runTask()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.Query:setFlushMode
    //#unanalyzed(void runTask()): Effects-of-calling:javax.persistence.Query:getResultList
    //#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:java.lang.Boolean
            
            PingQueueProcessor.getInstance().processQueue();
            WebloggerFactory.getWeblogger().flush();
            
            log.debug("task completed");
    //#PingQueueTask.java:136: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
            
        } catch (WebloggerException e) {
            log.error("Error while processing ping queue", e);
    //#PingQueueTask.java:139: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        } catch (Exception ee) {
            log.error("unexpected exception", ee);
    //#PingQueueTask.java:141: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void runTask()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        } finally {
            // always release
            WebloggerFactory.getWeblogger().release();
        }
        
    }
    //#PingQueueTask.java:147: end of method: void org.apache.roller.weblogger.business.pings.PingQueueTask.runTask()
    
    
    /**
     * Main method so that this task may be run from outside the webapp.
     */
    public static void main(String[] args) throws Exception {
        try {
            PingQueueTask task = new PingQueueTask();
    //#PingQueueTask.java:155: method: void org.apache.roller.weblogger.business.pings.PingQueueTask.main(String[])
    //#PingQueueTask.java:155: 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.pings.PingQueueTask
    //#    method: void main(String[])
    //#    suspicious precondition index: [4]
    //#    Attribs:  Soft
    //#PingQueueTask.java:155: ?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/pings/PingQueueTask]
    //#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/GuiceWebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void main(String[])): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerImpl]
    //#input(void main(String[])): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/Weblogger]
    //#input(void main(String[])): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl]
    //#input(void main(String[])): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[others]
    //#input(void main(String[])): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.__Tag
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingQueueManager
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/GuiceWebloggerProvider]
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerProvider]
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[others]
    //#input(void main(String[])): org/apache/roller/weblogger/business/WebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void main(String[])): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void main(String[])): org/apache/roller/weblogger/business/pings/PingQueueProcessor.logger
    //#input(void main(String[])): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance
    //#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/business/runnable/TurnoverReferersTask.__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
    //#output(void main(String[])): new PingQueueProcessor(init#1*) num objects
    //#output(void main(String[])): new PingQueueProcessor(init#1*).__Tag
    //#output(void main(String[])): new PingQueueProcessor(init#1*).pingQueueMgr
    //#output(void main(String[])): org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance
    //#new obj(void main(String[])): new PingQueueProcessor(init#1*)
    //#pre[1] (void main(String[])): (soft) log != null
    //#pre[2] (void main(String[])): (soft) init'ed(org/apache/roller/weblogger/business/pings/PingQueueProcessor.theInstance)
    //#pre[3] (void main(String[])): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider != null
    //#pre[4] (void main(String[])): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag in {org/apache/roller/weblogger/business/GuiceWebloggerProvider, org/apache/roller/weblogger/business/WebloggerProvider}
    //#pre[5] (void main(String[])): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance != null
    //#pre[9] (void main(String[])): (soft) org/apache/roller/weblogger/config/WebloggerConfig.config != null
    //#pre[10] (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.RollerTask
    //#unanalyzed(void main(String[])): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void main(String[])): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(void main(String[])): Effects-of-calling:org.apache.commons.logging.Log:isDebugEnabled
    //#unanalyzed(void main(String[])): Effects-of-calling:getWeblogger
    //#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:getPingQueueManager
    //#unanalyzed(void main(String[])): Effects-of-calling:getName
    //#unanalyzed(void main(String[])): Effects-of-calling:java.lang.String:trim
    //#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.util.Properties:setProperty
            task.init();
            task.run();
    //#PingQueueTask.java:157: Warning: call too complex - analysis skipped
    //#    -- call on void run()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void main(String[])
    //#    unanalyzed callee: void run()
            System.exit(0);
        } catch (WebloggerException ex) {
            ex.printStackTrace();
    //#PingQueueTask.java:160: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.WebloggerException:printStackTrace()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.pings.PingQueueTask
    //#    method: void main(String[])
    //#    unanalyzed callee: void org.apache.roller.weblogger.WebloggerException:printStackTrace()
            System.exit(-1);
        }
    }
    //#PingQueueTask.java:163: end of method: void org.apache.roller.weblogger.business.pings.PingQueueTask.main(String[])
    
}
    //#PingQueueTask.java:: end of class: org.apache.roller.weblogger.business.pings.PingQueueTask
