//# 0 errors, 445 messages
//#
/*
    //#JPAAutoPingManagerImpl.java:1:1: class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
 * 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.jpa;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.pings.AutoPingManager;
import org.apache.roller.weblogger.business.pings.PingQueueManager;
import org.apache.roller.weblogger.config.PingConfig;
import org.apache.roller.weblogger.pojos.AutoPing;
import org.apache.roller.weblogger.pojos.PingTarget;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.Weblog;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.persistence.Query;
import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
import org.apache.roller.weblogger.business.Weblogger;

/*
 * JPAAutoPingManagerImpl.java
 *
 * Created on May 29, 2006, 11:29 AM
 *
 */
@com.google.inject.Singleton
public class JPAAutoPingManagerImpl implements AutoPingManager {

    private final Weblogger roller;
    private final JPAPersistenceStrategy strategy;
    /**
     * The logger instance for this class.
     */
    private static Log logger = LogFactory.getFactory().getInstance(JPAAutoPingManagerImpl.class);
    //#JPAAutoPingManagerImpl.java:52: method: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init
    //#JPAAutoPingManagerImpl.java:52: Warning: method not available
    //#    -- call on LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
    //#    method: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init
    //#    unanalyzed callee: LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#JPAAutoPingManagerImpl.java:52: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
    //#    method: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl]
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getApplicableAutoPings(Lorg/apache/roller/weblogger/pojos/WeblogEntry;)Ljava/util/List;
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getAutoPing(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/AutoPing;
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getAutoPingsByTarget(Lorg/apache/roller/weblogger/pojos/PingTarget;)Ljava/util/List;
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getAutoPingsByWebsite(Lorg/apache/roller/weblogger/pojos/Weblog;)Ljava/util/List;
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getCategoryRestrictions(Lorg/apache/roller/weblogger/pojos/AutoPing;)Ljava/util/List;
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.queueApplicableAutoPings(Lorg/apache/roller/weblogger/pojos/WeblogEntry;)V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.release()V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAllAutoPings()V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAutoPing(Lorg/apache/roller/weblogger/pojos/AutoPing;)V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAutoPing(Lorg/apache/roller/weblogger/pojos/PingTarget;Lorg/apache/roller/weblogger/pojos/Weblog;)V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAutoPings(Ljava/util/Collection;)V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.saveAutoPing(Lorg/apache/roller/weblogger/pojos/AutoPing;)V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.setCategoryRestrictions(Lorg/apache/roller/weblogger/pojos/AutoPing;Ljava/util/Collection;)V
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): logger
    //#output(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl]
    //#presumption(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): org.apache.commons.logging.LogFactory:getFactory(...)@52 != null
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): org/apache/roller/weblogger/business/pings/AutoPingManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getApplicableAutoPings(Lorg/apache/roller/weblogger/pojos/WeblogEntry;)Ljava/util/List; == &getApplicableAutoPings
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getAutoPing(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/AutoPing; == &getAutoPing
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getAutoPingsByTarget(Lorg/apache/roller/weblogger/pojos/PingTarget;)Ljava/util/List; == &getAutoPingsByTarget
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getAutoPingsByWebsite(Lorg/apache/roller/weblogger/pojos/Weblog;)Ljava/util/List; == &getAutoPingsByWebsite
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.getCategoryRestrictions(Lorg/apache/roller/weblogger/pojos/AutoPing;)Ljava/util/List; == &getCategoryRestrictions
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.queueApplicableAutoPings(Lorg/apache/roller/weblogger/pojos/WeblogEntry;)V == &queueApplicableAutoPings
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.release()V == &release
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAllAutoPings()V == &removeAllAutoPings
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAutoPing(Lorg/apache/roller/weblogger/pojos/AutoPing;)V == &removeAutoPing
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAutoPing(Lorg/apache/roller/weblogger/pojos/PingTarget;Lorg/apache/roller/weblogger/pojos/Weblog;)V == &removeAutoPing
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.removeAutoPings(Ljava/util/Collection;)V == &removeAutoPings
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.saveAutoPing(Lorg/apache/roller/weblogger/pojos/AutoPing;)V == &saveAutoPing
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): __Dispatch_Table.setCategoryRestrictions(Lorg/apache/roller/weblogger/pojos/AutoPing;Ljava/util/Collection;)V == &setCategoryRestrictions
    //#post(org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init): init'ed(logger)
    //#JPAAutoPingManagerImpl.java:52: end of method: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl__static_init

    /**
     * Creates a new instance of JPAAutoPingManagerImpl
     */
    @com.google.inject.Inject
    protected JPAAutoPingManagerImpl(Weblogger roller, JPAPersistenceStrategy strategy) {
    //#JPAAutoPingManagerImpl.java:58: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)
    //#input(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): roller
    //#input(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): strategy
    //#input(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): this
    //#output(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): this.roller
    //#output(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): this.strategy
    //#post(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): this.roller == roller
    //#post(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): init'ed(this.roller)
    //#post(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): this.strategy == strategy
    //#post(void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)): init'ed(this.strategy)
        this.roller = roller;
        this.strategy = strategy;
    }
    //#JPAAutoPingManagerImpl.java:61: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl(Weblogger, JPAPersistenceStrategy)

    public AutoPing getAutoPing(String id) throws WebloggerException {
        return (AutoPing) strategy.load(AutoPing.class, id);
    //#JPAAutoPingManagerImpl.java:64: method: AutoPing org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getAutoPing(String)
    //#input(AutoPing getAutoPing(String)): id
    //#input(AutoPing getAutoPing(String)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(AutoPing getAutoPing(String)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(AutoPing getAutoPing(String)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.load(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
    //#input(AutoPing getAutoPing(String)): org/apache/roller/weblogger/pojos/AutoPing.__Descendant_Table[org/apache/roller/weblogger/pojos/AutoPing]
    //#input(AutoPing getAutoPing(String)): org/apache/roller/weblogger/pojos/AutoPing.__Descendant_Table[others]
    //#input(AutoPing getAutoPing(String)): this
    //#input(AutoPing getAutoPing(String)): this.strategy
    //#input(AutoPing getAutoPing(String)): this.strategy.__Tag
    //#input(AutoPing getAutoPing(String)): this.strategy.emf
    //#input(AutoPing getAutoPing(String)): this.strategy.threadLocalEntityManager
    //#output(AutoPing getAutoPing(String)): return_value
    //#pre[3] (AutoPing getAutoPing(String)): this.strategy != null
    //#pre[4] (AutoPing getAutoPing(String)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[6] (AutoPing getAutoPing(String)): this.strategy.threadLocalEntityManager != null
    //#pre[5] (AutoPing getAutoPing(String)): (soft) this.strategy.emf != null
    //#presumption(AutoPing getAutoPing(String)): load(...).__Tag@64 == org/apache/roller/weblogger/pojos/AutoPing
    //#post(AutoPing getAutoPing(String)): init'ed(return_value)
    //#unanalyzed(AutoPing getAutoPing(String)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(AutoPing getAutoPing(String)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(AutoPing getAutoPing(String)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(AutoPing getAutoPing(String)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(AutoPing getAutoPing(String)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(AutoPing getAutoPing(String)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(AutoPing getAutoPing(String)): Effects-of-calling:javax.persistence.EntityManager:find
    //#JPAAutoPingManagerImpl.java:64: end of method: AutoPing org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getAutoPing(String)
    }

    public void saveAutoPing(AutoPing autoPing) throws WebloggerException {
        strategy.store(autoPing);
    //#JPAAutoPingManagerImpl.java:68: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.saveAutoPing(AutoPing)
    //#input(void saveAutoPing(AutoPing)): autoPing
    //#input(void saveAutoPing(AutoPing)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void saveAutoPing(AutoPing)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void saveAutoPing(AutoPing)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.store(Ljava/lang/Object;)Ljava/lang/Object;
    //#input(void saveAutoPing(AutoPing)): this
    //#input(void saveAutoPing(AutoPing)): this.strategy
    //#input(void saveAutoPing(AutoPing)): this.strategy.__Tag
    //#input(void saveAutoPing(AutoPing)): this.strategy.emf
    //#input(void saveAutoPing(AutoPing)): this.strategy.threadLocalEntityManager
    //#pre[3] (void saveAutoPing(AutoPing)): this.strategy != null
    //#pre[4] (void saveAutoPing(AutoPing)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[6] (void saveAutoPing(AutoPing)): this.strategy.threadLocalEntityManager != null
    //#pre[5] (void saveAutoPing(AutoPing)): (soft) this.strategy.emf != null
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityManager:contains
    //#unanalyzed(void saveAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityManager:persist
    }
    //#JPAAutoPingManagerImpl.java:69: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.saveAutoPing(AutoPing)

    public void removeAutoPing(AutoPing autoPing) throws WebloggerException {
        strategy.remove(autoPing);
    //#JPAAutoPingManagerImpl.java:72: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAutoPing(AutoPing)
    //#input(void removeAutoPing(AutoPing)): autoPing
    //#input(void removeAutoPing(AutoPing)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void removeAutoPing(AutoPing)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void removeAutoPing(AutoPing)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.remove(Ljava/lang/Object;)V
    //#input(void removeAutoPing(AutoPing)): this
    //#input(void removeAutoPing(AutoPing)): this.strategy
    //#input(void removeAutoPing(AutoPing)): this.strategy.__Tag
    //#input(void removeAutoPing(AutoPing)): this.strategy.emf
    //#input(void removeAutoPing(AutoPing)): this.strategy.threadLocalEntityManager
    //#pre[3] (void removeAutoPing(AutoPing)): this.strategy != null
    //#pre[4] (void removeAutoPing(AutoPing)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[6] (void removeAutoPing(AutoPing)): this.strategy.threadLocalEntityManager != null
    //#pre[5] (void removeAutoPing(AutoPing)): (soft) this.strategy.emf != null
    //#unanalyzed(void removeAutoPing(AutoPing)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void removeAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void removeAutoPing(AutoPing)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void removeAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void removeAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void removeAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void removeAutoPing(AutoPing)): Effects-of-calling:javax.persistence.EntityManager:remove
    }
    //#JPAAutoPingManagerImpl.java:73: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAutoPing(AutoPing)

    public void removeAutoPing(PingTarget pingTarget, Weblog website) throws WebloggerException {
        Query q = strategy.getNamedUpdate("AutoPing.removeByPingTarget&Website");
    //#JPAAutoPingManagerImpl.java:76: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAutoPing(PingTarget, Weblog)
    //#input(void removeAutoPing(PingTarget, Weblog)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void removeAutoPing(PingTarget, Weblog)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void removeAutoPing(PingTarget, Weblog)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.getNamedUpdate(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(void removeAutoPing(PingTarget, Weblog)): pingTarget
    //#input(void removeAutoPing(PingTarget, Weblog)): this
    //#input(void removeAutoPing(PingTarget, Weblog)): this.strategy
    //#input(void removeAutoPing(PingTarget, Weblog)): this.strategy.__Tag
    //#input(void removeAutoPing(PingTarget, Weblog)): this.strategy.emf
    //#input(void removeAutoPing(PingTarget, Weblog)): this.strategy.threadLocalEntityManager
    //#input(void removeAutoPing(PingTarget, Weblog)): website
    //#pre[3] (void removeAutoPing(PingTarget, Weblog)): this.strategy != null
    //#pre[4] (void removeAutoPing(PingTarget, Weblog)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[6] (void removeAutoPing(PingTarget, Weblog)): this.strategy.threadLocalEntityManager != null
    //#pre[5] (void removeAutoPing(PingTarget, Weblog)): (soft) this.strategy.emf != null
    //#presumption(void removeAutoPing(PingTarget, Weblog)): javax.persistence.EntityManager:createNamedQuery(...)@301 != null
    //#unanalyzed(void removeAutoPing(PingTarget, Weblog)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void removeAutoPing(PingTarget, Weblog)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void removeAutoPing(PingTarget, Weblog)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void removeAutoPing(PingTarget, Weblog)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void removeAutoPing(PingTarget, Weblog)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void removeAutoPing(PingTarget, Weblog)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void removeAutoPing(PingTarget, Weblog)): Effects-of-calling:javax.persistence.EntityManager:createNamedQuery
        q.setParameter(1, pingTarget);
        q.setParameter(2, website);
        q.executeUpdate();
    }
    //#JPAAutoPingManagerImpl.java:80: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAutoPing(PingTarget, Weblog)

    public void removeAutoPings(Collection autopings) throws WebloggerException {
        strategy.removeAll(autopings);
    //#JPAAutoPingManagerImpl.java:83: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAutoPings(Collection)
    //#input(void removeAutoPings(Collection)): autopings
    //#input(void removeAutoPings(Collection)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void removeAutoPings(Collection)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void removeAutoPings(Collection)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.removeAll(Ljava/util/Collection;)V
    //#input(void removeAutoPings(Collection)): this
    //#input(void removeAutoPings(Collection)): this.strategy
    //#input(void removeAutoPings(Collection)): this.strategy.__Tag
    //#input(void removeAutoPings(Collection)): this.strategy.emf
    //#input(void removeAutoPings(Collection)): this.strategy.threadLocalEntityManager
    //#pre[1] (void removeAutoPings(Collection)): autopings != null
    //#pre[3] (void removeAutoPings(Collection)): this.strategy != null
    //#pre[4] (void removeAutoPings(Collection)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[6] (void removeAutoPings(Collection)): this.strategy.threadLocalEntityManager != null
    //#pre[5] (void removeAutoPings(Collection)): (soft) this.strategy.emf != null
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:javax.persistence.EntityManager:remove
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void removeAutoPings(Collection)): Effects-of-calling:java.util.Iterator:next
    }
    //#JPAAutoPingManagerImpl.java:84: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAutoPings(Collection)

    public void removeAllAutoPings() throws WebloggerException {
        Query q = strategy.getNamedUpdate("AutoPing.getAll");
    //#JPAAutoPingManagerImpl.java:87: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAllAutoPings()
    //#input(void removeAllAutoPings()): __Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl]
    //#input(void removeAllAutoPings()): __Descendant_Table[others]
    //#input(void removeAllAutoPings()): __Dispatch_Table.removeAutoPings(Ljava/util/Collection;)V
    //#input(void removeAllAutoPings()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void removeAllAutoPings()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void removeAllAutoPings()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.getNamedUpdate(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(void removeAllAutoPings()): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.removeAll(Ljava/util/Collection;)V
    //#input(void removeAllAutoPings()): this
    //#input(void removeAllAutoPings()): this.__Tag
    //#input(void removeAllAutoPings()): this.strategy
    //#input(void removeAllAutoPings()): this.strategy.__Tag
    //#input(void removeAllAutoPings()): this.strategy.emf
    //#input(void removeAllAutoPings()): this.strategy.threadLocalEntityManager
    //#pre[2] (void removeAllAutoPings()): this.__Tag == org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl
    //#pre[3] (void removeAllAutoPings()): this.strategy != null
    //#pre[4] (void removeAllAutoPings()): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[6] (void removeAllAutoPings()): this.strategy.threadLocalEntityManager != null
    //#pre[5] (void removeAllAutoPings()): (soft) this.strategy.emf != null
    //#presumption(void removeAllAutoPings()): javax.persistence.EntityManager:createNamedQuery(...)@301 != null
    //#presumption(void removeAllAutoPings()): javax.persistence.Query:getResultList(...)@88 != null
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:javax.persistence.EntityManager:createNamedQuery
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:javax.persistence.EntityManager:remove
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void removeAllAutoPings()): Effects-of-calling:java.util.Iterator:next
        removeAutoPings(q.getResultList());
    }
    //#JPAAutoPingManagerImpl.java:89: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.removeAllAutoPings()

    public void queueApplicableAutoPings(WeblogEntry changedWeblogEntry) throws WebloggerException {
        if (PingConfig.getSuspendPingProcessing()) {
    //#JPAAutoPingManagerImpl.java:92: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.queueApplicableAutoPings(WeblogEntry)
    //#JPAAutoPingManagerImpl.java:92: 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.jpa.JPAAutoPingManagerImpl
    //#    method: void queueApplicableAutoPings(WeblogEntry)
    //#    suspicious precondition index: [4]
    //#    Attribs:  Soft
    //#JPAAutoPingManagerImpl.java:92: Warning: suspicious precondition
    //#    the precondition for this.roller.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
    //#    method: void queueApplicableAutoPings(WeblogEntry)
    //#    suspicious precondition index: [19]
    //#    Attribs:  Soft
    //#input(void queueApplicableAutoPings(WeblogEntry)): "="._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): "A ping queue entry is already present for this ping target and website: "._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): "Creating new ping queue entry for auto ping configuration: "._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): "Storing ping queue entry: "._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): "Trouble accessing property: "._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): "]"._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): "fetched property ["._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): "pings.suspendPingProcessing"._tainted
    //#input(void queueApplicableAutoPings(WeblogEntry)): __Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl]
    //#input(void queueApplicableAutoPings(WeblogEntry)): __Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): __Dispatch_Table.getApplicableAutoPings(Lorg/apache/roller/weblogger/pojos/WeblogEntry;)Ljava/util/List;
    //#input(void queueApplicableAutoPings(WeblogEntry)): __Dispatch_Table.getAutoPingsByWebsite(Lorg/apache/roller/weblogger/pojos/Weblog;)Ljava/util/List;
    //#input(void queueApplicableAutoPings(WeblogEntry)): changedWeblogEntry
    //#input(void queueApplicableAutoPings(WeblogEntry)): logger
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/GuiceWebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/PropertiesManager.__Descendant_Table[org/apache/roller/weblogger/business/PropertiesManager]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/PropertiesManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/PropertiesManager.__Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/PropertiesManager.__Dispatch_Table.getProperty(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/RuntimeConfigProperty;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerImpl]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/Weblogger]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/Weblogger.__Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/Weblogger.__Dispatch_Table.getPropertiesManager()Lorg/apache/roller/weblogger/business/PropertiesManager;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.strategy
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.strategy.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance.propertiesManager.strategy.threadLocalEntityManager
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerImpl.__Dispatch_Table.getPropertiesManager()Lorg/apache/roller/weblogger/business/PropertiesManager;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/GuiceWebloggerProvider]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[org/apache/roller/weblogger/business/WebloggerProvider]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerProvider.__Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/WebloggerProvider.__Dispatch_Table.getWeblogger()Lorg/apache/roller/weblogger/business/Weblogger;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.getNamedQuery(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.load(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.store(Ljava/lang/Object;)Ljava/lang/Object;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.javax.persistence.FlushModeType.COMMIT
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.addQueueEntry(Lorg/apache/roller/weblogger/pojos/AutoPing;)V
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.__Dispatch_Table.saveQueueEntry(Lorg/apache/roller/weblogger/pojos/PingQueueEntry;)V
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.log
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.__Dispatch_Table.getProperty(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/RuntimeConfigProperty;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.getPingQueueManager()Lorg/apache/roller/weblogger/business/pings/PingQueueManager;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl.__Dispatch_Table.getPropertiesManager()Lorg/apache/roller/weblogger/business/PropertiesManager;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[org/apache/roller/weblogger/business/pings/PingQueueManager]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/pings/PingQueueManager.__Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/pings/PingQueueManager.__Dispatch_Table.addQueueEntry(Lorg/apache/roller/weblogger/pojos/AutoPing;)V
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/config/WebloggerRuntimeConfig.log
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/pojos/AutoPing.__Descendant_Table[org/apache/roller/weblogger/pojos/AutoPing]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/pojos/AutoPing.__Descendant_Table[others]
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/pojos/AutoPing.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/pojos/AutoPing.__Dispatch_Table.getWebsite()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/pojos/AutoPing.pcInheritedFieldCount
    //#input(void queueApplicableAutoPings(WeblogEntry)): this
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller.pingQueueManager
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller.pingQueueManager.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller.pingQueueManager.strategy
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller.pingQueueManager.strategy.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller.pingQueueManager.strategy.emf
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.roller.pingQueueManager.strategy.threadLocalEntityManager
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.strategy
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.strategy.__Tag
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.strategy.emf
    //#input(void queueApplicableAutoPings(WeblogEntry)): this.strategy.threadLocalEntityManager
    //#pre[14] (void queueApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/config/WebloggerRuntimeConfig.log != null
    //#pre[1] (void queueApplicableAutoPings(WeblogEntry)): (soft) changedWeblogEntry != null
    //#pre[2] (void queueApplicableAutoPings(WeblogEntry)): (soft) logger != null
    //#pre[3] (void queueApplicableAutoPings(WeblogEntry)): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider != null
    //#pre[4] (void queueApplicableAutoPings(WeblogEntry)): (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 queueApplicableAutoPings(WeblogEntry)): (soft) org/apache/roller/weblogger/business/WebloggerFactory.webloggerProvider.webloggerInstance != null
    //#pre[13] (void queueApplicableAutoPings(WeblogEntry)): (soft) org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.log != null
    //#pre[15] (void queueApplicableAutoPings(WeblogEntry)): (soft) org/apache/roller/weblogger/pojos/AutoPing.pcInheritedFieldCount <= 4_294_967_293
    //#pre[17] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.__Tag == org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl
    //#pre[18] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.roller != null
    //#pre[19] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.roller.__Tag in {org/apache/roller/weblogger/business/Weblogger, org/apache/roller/weblogger/business/WebloggerImpl, org/apache/roller/weblogger/business/jpa/JPAWebloggerImpl}
    //#pre[20] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.roller.pingQueueManager != null
    //#pre[21] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.roller.pingQueueManager.__Tag == org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl
    //#pre[22] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.roller.pingQueueManager.strategy != null
    //#pre[23] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.roller.pingQueueManager.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[24] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.roller.pingQueueManager.strategy.threadLocalEntityManager != null
    //#pre[25] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.strategy != null
    //#pre[26] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[27] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.strategy.emf != null
    //#pre[28] (void queueApplicableAutoPings(WeblogEntry)): (soft) this.strategy.threadLocalEntityManager != null
    //#presumption(void queueApplicableAutoPings(WeblogEntry)): java.util.Iterator:next(...).__Tag@102 == org/apache/roller/weblogger/pojos/AutoPing
    //#presumption(void queueApplicableAutoPings(WeblogEntry)): java.util.Iterator:next(...)@102 != null
    //#presumption(void queueApplicableAutoPings(WeblogEntry)): javax.persistence.Query:getResultList(...)@110 != null
    //#presumption(void queueApplicableAutoPings(WeblogEntry)): pingQueueMgr.strategy.emf@100 != null
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManager:createNamedQuery
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.Query:setFlushMode
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.Query:setParameter
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.Query:getResultList
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:getBooleanProperty
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManager:contains
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManager:persist
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:org.apache.openjpa.enhance.StateManager:accessingField
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.sql.Timestamp
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:org.apache.roller.util.UUIDGenerator:generateUUID
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManager:find
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:getWeblogger
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:getPropertiesManager
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:getProperty
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:org.apache.roller.weblogger.pojos.RuntimeConfigProperty:getValue
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.Boolean
    //#unanalyzed(void queueApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.Boolean:booleanValue
    //#test_vector(void queueApplicableAutoPings(WeblogEntry)): java.util.Iterator:hasNext(...)@101: {0}, {1}
    //#test_vector(void queueApplicableAutoPings(WeblogEntry)): org.apache.commons.logging.Log:isDebugEnabled(...)@93: {0}, {1}
            if (logger.isDebugEnabled()) {
    //#JPAAutoPingManagerImpl.java:93: Warning: method not available
    //#    -- call on bool org.apache.commons.logging.Log:isDebugEnabled()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
    //#    method: void queueApplicableAutoPings(WeblogEntry)
    //#    unanalyzed callee: bool org.apache.commons.logging.Log:isDebugEnabled()
                logger.debug("Ping processing is suspended." + " No auto pings will be queued.");
    //#JPAAutoPingManagerImpl.java:94: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
    //#    method: void queueApplicableAutoPings(WeblogEntry)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
            }
            return;
        }

        PingQueueManager pingQueueMgr = roller.getPingQueueManager();
        List applicableAutopings = getApplicableAutoPings(changedWeblogEntry);
        for (Iterator i = applicableAutopings.iterator(); i.hasNext();) {
            AutoPing autoPing = (AutoPing) i.next();
            pingQueueMgr.addQueueEntry(autoPing);
        }
    }
    //#JPAAutoPingManagerImpl.java:105: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.queueApplicableAutoPings(WeblogEntry)

    public List getAutoPingsByWebsite(Weblog website) throws WebloggerException {
        Query q = strategy.getNamedQuery("AutoPing.getByWebsite");
    //#JPAAutoPingManagerImpl.java:108: method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getAutoPingsByWebsite(Weblog)
    //#input(List getAutoPingsByWebsite(Weblog)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(List getAutoPingsByWebsite(Weblog)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(List getAutoPingsByWebsite(Weblog)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.getNamedQuery(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(List getAutoPingsByWebsite(Weblog)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.javax.persistence.FlushModeType.COMMIT
    //#input(List getAutoPingsByWebsite(Weblog)): this
    //#input(List getAutoPingsByWebsite(Weblog)): this.strategy
    //#input(List getAutoPingsByWebsite(Weblog)): this.strategy.__Tag
    //#input(List getAutoPingsByWebsite(Weblog)): this.strategy.emf
    //#input(List getAutoPingsByWebsite(Weblog)): this.strategy.threadLocalEntityManager
    //#input(List getAutoPingsByWebsite(Weblog)): website
    //#output(List getAutoPingsByWebsite(Weblog)): return_value
    //#pre[2] (List getAutoPingsByWebsite(Weblog)): this.strategy != null
    //#pre[3] (List getAutoPingsByWebsite(Weblog)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[5] (List getAutoPingsByWebsite(Weblog)): this.strategy.threadLocalEntityManager != null
    //#pre[4] (List getAutoPingsByWebsite(Weblog)): (soft) this.strategy.emf != null
    //#post(List getAutoPingsByWebsite(Weblog)): init'ed(return_value)
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:javax.persistence.EntityManager:createNamedQuery
    //#unanalyzed(List getAutoPingsByWebsite(Weblog)): Effects-of-calling:javax.persistence.Query:setFlushMode
        q.setParameter(1, website);
        return q.getResultList();
    //#JPAAutoPingManagerImpl.java:110: end of method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getAutoPingsByWebsite(Weblog)
    }

    public List getAutoPingsByTarget(PingTarget pingTarget) throws WebloggerException {
        Query q = strategy.getNamedQuery("AutoPing.getByPingTarget");
    //#JPAAutoPingManagerImpl.java:114: method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getAutoPingsByTarget(PingTarget)
    //#input(List getAutoPingsByTarget(PingTarget)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(List getAutoPingsByTarget(PingTarget)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(List getAutoPingsByTarget(PingTarget)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.getNamedQuery(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(List getAutoPingsByTarget(PingTarget)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.javax.persistence.FlushModeType.COMMIT
    //#input(List getAutoPingsByTarget(PingTarget)): pingTarget
    //#input(List getAutoPingsByTarget(PingTarget)): this
    //#input(List getAutoPingsByTarget(PingTarget)): this.strategy
    //#input(List getAutoPingsByTarget(PingTarget)): this.strategy.__Tag
    //#input(List getAutoPingsByTarget(PingTarget)): this.strategy.emf
    //#input(List getAutoPingsByTarget(PingTarget)): this.strategy.threadLocalEntityManager
    //#output(List getAutoPingsByTarget(PingTarget)): return_value
    //#pre[3] (List getAutoPingsByTarget(PingTarget)): this.strategy != null
    //#pre[4] (List getAutoPingsByTarget(PingTarget)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[6] (List getAutoPingsByTarget(PingTarget)): this.strategy.threadLocalEntityManager != null
    //#pre[5] (List getAutoPingsByTarget(PingTarget)): (soft) this.strategy.emf != null
    //#post(List getAutoPingsByTarget(PingTarget)): init'ed(return_value)
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:javax.persistence.EntityManager:createNamedQuery
    //#unanalyzed(List getAutoPingsByTarget(PingTarget)): Effects-of-calling:javax.persistence.Query:setFlushMode
        q.setParameter(1, pingTarget);
        return q.getResultList();
    //#JPAAutoPingManagerImpl.java:116: end of method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getAutoPingsByTarget(PingTarget)
    }

    public List getApplicableAutoPings(WeblogEntry changedWeblogEntry) throws WebloggerException {
        return getAutoPingsByWebsite(changedWeblogEntry.getWebsite());
    //#JPAAutoPingManagerImpl.java:120: method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getApplicableAutoPings(WeblogEntry)
    //#JPAAutoPingManagerImpl.java:120: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
    //#    method: List getApplicableAutoPings(WeblogEntry)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.pojos.WeblogEntry:getWebsite()
    //#input(List getApplicableAutoPings(WeblogEntry)): __Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl]
    //#input(List getApplicableAutoPings(WeblogEntry)): __Descendant_Table[others]
    //#input(List getApplicableAutoPings(WeblogEntry)): __Dispatch_Table.getAutoPingsByWebsite(Lorg/apache/roller/weblogger/pojos/Weblog;)Ljava/util/List;
    //#input(List getApplicableAutoPings(WeblogEntry)): changedWeblogEntry
    //#input(List getApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy]
    //#input(List getApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Descendant_Table[others]
    //#input(List getApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.__Dispatch_Table.getNamedQuery(Ljava/lang/String;)Ljavax/persistence/Query;
    //#input(List getApplicableAutoPings(WeblogEntry)): org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.javax.persistence.FlushModeType.COMMIT
    //#input(List getApplicableAutoPings(WeblogEntry)): this
    //#input(List getApplicableAutoPings(WeblogEntry)): this.__Tag
    //#input(List getApplicableAutoPings(WeblogEntry)): this.strategy
    //#input(List getApplicableAutoPings(WeblogEntry)): this.strategy.__Tag
    //#input(List getApplicableAutoPings(WeblogEntry)): this.strategy.emf
    //#input(List getApplicableAutoPings(WeblogEntry)): this.strategy.threadLocalEntityManager
    //#output(List getApplicableAutoPings(WeblogEntry)): return_value
    //#pre[1] (List getApplicableAutoPings(WeblogEntry)): changedWeblogEntry != null
    //#pre[3] (List getApplicableAutoPings(WeblogEntry)): this.__Tag == org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl
    //#pre[4] (List getApplicableAutoPings(WeblogEntry)): this.strategy != null
    //#pre[5] (List getApplicableAutoPings(WeblogEntry)): this.strategy.__Tag == org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy
    //#pre[7] (List getApplicableAutoPings(WeblogEntry)): this.strategy.threadLocalEntityManager != null
    //#pre[6] (List getApplicableAutoPings(WeblogEntry)): (soft) this.strategy.emf != null
    //#post(List getApplicableAutoPings(WeblogEntry)): init'ed(return_value)
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.ThreadLocal:get
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManagerFactory:createEntityManager
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:java.lang.ThreadLocal:set
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManager:getTransaction
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityTransaction:isActive
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityTransaction:begin
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.EntityManager:createNamedQuery
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.Query:setFlushMode
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.Query:setParameter
    //#unanalyzed(List getApplicableAutoPings(WeblogEntry)): Effects-of-calling:javax.persistence.Query:getResultList
    //#JPAAutoPingManagerImpl.java:120: end of method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getApplicableAutoPings(WeblogEntry)
        //        return (List)strategy.newQuery(AutoPing.class, "AutoPing.getByWebsite")
        //            .execute(changedWeblogEntry.getWebsite());
    }

    public List getCategoryRestrictions(AutoPing autoPing) throws WebloggerException {
        return Collections.EMPTY_LIST;
    //#JPAAutoPingManagerImpl.java:126: method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getCategoryRestrictions(AutoPing)
    //#input(List getCategoryRestrictions(AutoPing)): java.util.Collections.EMPTY_LIST
    //#output(List getCategoryRestrictions(AutoPing)): return_value
    //#presumption(List getCategoryRestrictions(AutoPing)): init'ed(java.util.Collections.EMPTY_LIST)
    //#post(List getCategoryRestrictions(AutoPing)): return_value == java.util.Collections.EMPTY_LIST
    //#post(List getCategoryRestrictions(AutoPing)): (soft) init'ed(return_value)
    //#JPAAutoPingManagerImpl.java:126: end of method: List org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.getCategoryRestrictions(AutoPing)
    }

    public void setCategoryRestrictions(AutoPing autoPing, Collection newCategories) {
        // NOT YET IMPLEMENTED
    }
    //#JPAAutoPingManagerImpl.java:131: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.setCategoryRestrictions(AutoPing, Collection)
    //#JPAAutoPingManagerImpl.java:131: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.setCategoryRestrictions(AutoPing, Collection)

    public void release() {
    }
    //#JPAAutoPingManagerImpl.java:134: method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.release()
    //#JPAAutoPingManagerImpl.java:134: end of method: void org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl.release()
}    //#JPAAutoPingManagerImpl.java:: end of class: org.apache.roller.weblogger.business.jpa.JPAAutoPingManagerImpl
