//# 0 errors, 256 messages
//#
/*
    //#ContinuousWorkerThread.java:1:1: class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
 * 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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


/**
 * A worker that performs a given job continuously.
 */
public class ContinuousWorkerThread extends WorkerThread {
    
    private static Log mLogger = LogFactory.getLog(ContinuousWorkerThread.class);
    //#ContinuousWorkerThread.java:30: method: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init
    //#ContinuousWorkerThread.java:30: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
    //#    method: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): __Descendant_Table[org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread]
    //#output(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): __Dispatch_Table.run()V
    //#output(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): __Dispatch_Table.setJob(Lorg/apache/roller/weblogger/business/runnable/Job;)V
    //#output(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): mLogger
    //#output(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): org/apache/roller/weblogger/business/runnable/WorkerThread.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread]
    //#post(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): __Descendant_Table[org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): org/apache/roller/weblogger/business/runnable/WorkerThread.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ContinuousWorkerThread] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): __Dispatch_Table.run()V == &run
    //#post(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): __Dispatch_Table.setJob(Lorg/apache/roller/weblogger/business/runnable/Job;)V == &org/apache/roller/weblogger/business/runnable/WorkerThread.setJob
    //#post(org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init): init'ed(mLogger)
    //#ContinuousWorkerThread.java:30: end of method: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread__static_init
    
    // default sleep time is 10 seconds
    long sleepTime = 10000;
    
    
    public ContinuousWorkerThread(String id) {
        super(id);
    //#ContinuousWorkerThread.java:37: method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): id
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): this
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): this.id
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): this.job
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): this.sleepTime
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): this.id == id
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): init'ed(this.id)
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): this.job == null
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): this.sleepTime == 10_000
    //#unanalyzed(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)): Effects-of-calling:java.lang.Thread
    }
    //#ContinuousWorkerThread.java:38: end of method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String)
    
    
    public ContinuousWorkerThread(String id, long sleep) {
        super(id);
    //#ContinuousWorkerThread.java:42: method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): id
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): sleep
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): this
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): this.id
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): this.job
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): this.sleepTime
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): this.id == id
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): init'ed(this.id)
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): this.job == null
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): this.sleepTime == sleep
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): init'ed(this.sleepTime)
    //#unanalyzed(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)): Effects-of-calling:java.lang.Thread
        
        this.sleepTime = sleep;
    }
    //#ContinuousWorkerThread.java:45: end of method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, long)
    
    
    public ContinuousWorkerThread(String id, Job job) {
        super(id, job);
    //#ContinuousWorkerThread.java:49: method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): id
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): job
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): this
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): this.id
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): this.job
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): this.sleepTime
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): this.id == id
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): init'ed(this.id)
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): this.job == job
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): init'ed(this.job)
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): this.sleepTime == 10_000
    //#unanalyzed(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)): Effects-of-calling:java.lang.Thread
    }
    //#ContinuousWorkerThread.java:50: end of method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job)
    
    
    public ContinuousWorkerThread(String id, Job job, long sleep) {
        super(id, job);
    //#ContinuousWorkerThread.java:54: method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): id
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): job
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): sleep
    //#input(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): this
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): this.id
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): this.job
    //#output(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): this.sleepTime
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): this.id == id
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): init'ed(this.id)
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): this.job == job
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): init'ed(this.job)
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): this.sleepTime == sleep
    //#post(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): init'ed(this.sleepTime)
    //#unanalyzed(void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)): Effects-of-calling:java.lang.Thread
        
        this.sleepTime = sleep;
    }
    //#ContinuousWorkerThread.java:57: end of method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread(String, Job, long)
    
    
    /**
     * Thread execution.
     *
     * We run forever.  Each time a job completes we sleep for 
     * some amount of time before trying again.
     *
     * If we ever get interrupted then we quit.
     */
    public void run() {
        
        mLogger.info(this.id+" Started.");
    //#ContinuousWorkerThread.java:70: method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.run()
    //#ContinuousWorkerThread.java:70: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:info(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
    //#    method: void run()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:info(Object)
    //#ContinuousWorkerThread.java:70: 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.ContinuousWorkerThread
    //#    method: void run()
    //#    suspicious precondition index: [6]
    //#    Attribs:  Soft
    //#ContinuousWorkerThread.java:70: Warning: suspicious precondition
    //#    the precondition for this.job.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
    //#    method: void run()
    //#    suspicious precondition index: [41]
    //#    Attribs:  Soft
    //#input(void run()): " INTERRUPT: "._tainted
    //#input(void run()): " SLEEPING for "._tainted
    //#input(void run()): " Started."._tainted
    //#input(void run()): " milliseconds ..."._tainted
    //#input(void run()): ", "._tainted
    //#input(void run()): "Error executing job. Worker = "._tainted
    //#input(void run()): "Job = "._tainted
    //#input(void run()): mLogger
    //#input(void run()): org/apache/roller/weblogger/business/BookmarkManager.__Descendant_Table[org/apache/roller/weblogger/business/BookmarkManager]
    //#input(void run()): org/apache/roller/weblogger/business/BookmarkManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/BookmarkManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/BookmarkManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/FileManager.__Descendant_Table[org/apache/roller/weblogger/business/FileManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/FileManager.__Descendant_Table[org/apache/roller/weblogger/business/FileManager]
    //#input(void run()): org/apache/roller/weblogger/business/FileManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/FileManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/FileManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/GuiceWebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void run()): org/apache/roller/weblogger/business/UserManager.__Descendant_Table[org/apache/roller/weblogger/business/UserManager]
    //#input(void run()): org/apache/roller/weblogger/business/UserManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/UserManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/UserManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/WeblogManager.__Descendant_Table[org/apache/roller/weblogger/business/WeblogManager]
    //#input(void run()): org/apache/roller/weblogger/business/WeblogManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/WeblogManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/WeblogManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/Weblogger]
    //#input(void run()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.autoPingManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.autoPingManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.bookmarkManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.bookmarkManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.fileManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.fileManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingQueueManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingQueueManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingTargetManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pingTargetManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pluginManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.pluginManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.refererManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.strategy
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.strategy.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.strategy.threadLocalEntityManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.threadManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.threadManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.userManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.userManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.weblogManager
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.weblogManager.__Tag
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerImpl.log
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/GuiceWebloggerProvider]
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerProvider]
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/WebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[org/apache/roller/weblogger/business/pings/AutoPingManager]
    //#input(void run()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/pings/AutoPingManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueManager]
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingQueueManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingTargetManager]
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/pings/PingTargetManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/plugins/PluginManager.__Descendant_Table[org/apache/roller/weblogger/business/plugins/PluginManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/plugins/PluginManager.__Descendant_Table[org/apache/roller/weblogger/business/plugins/PluginManager]
    //#input(void run()): org/apache/roller/weblogger/business/plugins/PluginManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/plugins/PluginManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/plugins/PluginManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/referrers/QueuedReferrerProcessingJob.__Dispatch_Table.execute()V
    //#input(void run()): org/apache/roller/weblogger/business/referrers/RefererManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/referrers/RefererManager.__Descendant_Table[org/apache/roller/weblogger/business/referrers/RefererManager]
    //#input(void run()): org/apache/roller/weblogger/business/referrers/RefererManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/referrers/RefererManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/referrers/ReferrerProcessingJob.__Dispatch_Table.execute()V
    //#input(void run()): org/apache/roller/weblogger/business/runnable/HitCountProcessingJob.__Dispatch_Table.execute()V
    //#input(void run()): org/apache/roller/weblogger/business/runnable/Job.__Descendant_Table[org/apache/roller/weblogger/business/referrers/QueuedReferrerProcessingJob]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/Job.__Descendant_Table[org/apache/roller/weblogger/business/referrers/ReferrerProcessingJob]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/Job.__Descendant_Table[org/apache/roller/weblogger/business/runnable/HitCountProcessingJob]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/Job.__Descendant_Table[org/apache/roller/weblogger/business/runnable/Job]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/Job.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/Job.__Dispatch_Table.execute()V
    //#input(void run()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ThreadManagerImpl]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[org/apache/roller/weblogger/business/runnable/ThreadManager]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Descendant_Table[others]
    //#input(void run()): org/apache/roller/weblogger/business/runnable/ThreadManager.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.__Dispatch_Table.release()V
    //#input(void run()): org/apache/roller/weblogger/business/runnable/WorkerThread.log
    //#input(void run()): this
    //#input(void run()): this.id
    //#input(void run()): this.id._tainted
    //#input(void run()): this.job
    //#input(void run()): this.job.__Tag
    //#input(void run()): this.sleepTime
    //#output(void run()): org/apache/roller/weblogger/business/HitCountQueue.instance.queue
    //#output(void run()): this.job.referrer
    //#pre[1] (void run()): mLogger != null
    //#pre[38] (void run()): init'ed(this.id)
    //#pre[5] (void run()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider != null
    //#pre[6] (void run()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag in {org/apache/roller/weblogger/business/GuiceWebloggerProvider, org/apache/roller/weblogger/business/WebloggerProvider}
    //#pre[7] (void run()): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance != null
    //#pre[33] (void run()): (soft) org/apache/roller/weblogger/business/WebloggerImpl.log != null
    //#pre[36] (void run()): (soft) org/apache/roller/weblogger/business/runnable/WorkerThread.log != null
    //#pre[40] (void run()): (soft) init'ed(this.job)
    //#pre[41] (void run()): (soft) this.job.__Tag in {org/apache/roller/weblogger/business/referrers/QueuedReferrerProcessingJob, org/apache/roller/weblogger/business/referrers/ReferrerProcessingJob, org/apache/roller/weblogger/business/runnable/HitCountProcessingJob, org/apache/roller/weblogger/business/runnable/Job}
    //#pre[49] (void run()): (soft) init'ed(this.sleepTime)
    //#post(void run()): possibly_updated(org/apache/roller/weblogger/business/HitCountQueue.instance.queue)
    //#post(void run()): possibly_updated(this.job.referrer)
    //#unanalyzed(void run()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void run()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Object:getClass
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Class:getName
    //#unanalyzed(void run()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void run()): Effects-of-calling:execute
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void run()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void run()): Effects-of-calling:getWeblogger
    //#unanalyzed(void run()): Effects-of-calling:release
    //#unanalyzed(void run()): Effects-of-calling:getUserManager
    //#unanalyzed(void run()): Effects-of-calling:getWeblogManager
    //#unanalyzed(void run()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void run()): Effects-of-calling:java.util.Collections:synchronizedList
    //#unanalyzed(void run()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void run()): Effects-of-calling:java.util.List:size
    //#unanalyzed(void run()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void run()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Long
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Long:longValue
    //#unanalyzed(void run()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void run()): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void run()): Effects-of-calling:java.util.Map:keySet
    //#unanalyzed(void run()): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void run()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void run()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void run()): Effects-of-calling:getWebsiteByHandle
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Long:intValue
    //#unanalyzed(void run()): Effects-of-calling:incrementHitCount
    //#unanalyzed(void run()): Effects-of-calling:flush
    //#unanalyzed(void run()): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void run()): Effects-of-calling:getRefererManager
    //#unanalyzed(void run()): Effects-of-calling:processReferrer
    //#unanalyzed(void run()): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(void run()): Effects-of-calling:getReferrerQueueManager
    //#unanalyzed(void run()): Effects-of-calling:dequeue
    //#unanalyzed(void run()): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void run()): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void run()): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void run()): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void run()): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void run()): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void run()): Effects-of-calling:javax.persistence.EntityTransaction:rollback
    //#unanalyzed(void run()): Effects-of-calling:javax.persistence.EntityManager:close
        
        // run forever
        while(true) {
            
            // execute our job
            super.run();
            
            // job is done, lets sleep it off for a bit
            try {
                mLogger.debug(this.id+" SLEEPING for "+this.sleepTime+" milliseconds ...");
    //#ContinuousWorkerThread.java:80: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
    //#    method: void run()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                this.sleep(this.sleepTime);
    //#ContinuousWorkerThread.java:81: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread:sleep(long)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
    //#    method: void run()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread:sleep(long)
            } catch (InterruptedException e) {
                mLogger.info(this.id+" INTERRUPT: "+e.getMessage());
    //#ContinuousWorkerThread.java:83: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:info(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
    //#    method: void run()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:info(Object)
                break;
            }
        }
    }
    //#ContinuousWorkerThread.java:87: end of method: void org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread.run()
    
}
    //#ContinuousWorkerThread.java:: end of class: org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread
