//# 10 errors, 563 messages
//#
package net.sourceforge.pebble.index;
    //#tagindexlistener.java:1:1: class: net.sourceforge.pebble.index.TagIndexListener
    //#tagindexlistener.java:1:1: method: net.sourceforge.pebble.index.TagIndexListener.net.sourceforge.pebble.index.TagIndexListener__static_init

import net.sourceforge.pebble.api.event.blogentry.BlogEntryListener;
import net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent;
import net.sourceforge.pebble.domain.BlogEntry;

import java.util.Iterator;
import java.util.List;
import java.beans.PropertyChangeEvent;

public class TagIndexListener implements BlogEntryListener {
    //#tagindexlistener.java:11: method: void net.sourceforge.pebble.index.TagIndexListener.net.sourceforge.pebble.index.TagIndexListener()
    //#tagindexlistener.java:11: end of method: void net.sourceforge.pebble.index.TagIndexListener.net.sourceforge.pebble.index.TagIndexListener()

  /**
   * Called when a blog entry has been added.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryAdded(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#tagindexlistener.java:19: method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryAdded(BlogEntryEvent)
    //#input(void blogEntryAdded(BlogEntryEvent)): event
    //#input(void blogEntryAdded(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getTagIndex()Lnet/sourceforge/pebble/index/TagIndex;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getCategories()Ljava/util/Set;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/domain/Tag]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.addBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.calculateRank([I)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getNumberOfBlogEntries()I
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[net/sourceforge/pebble/index/TagIndex]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.getTag(Ljava/lang/String;)Lnet/sourceforge/pebble/index/IndexedTag;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.index(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.log
    //#pre[1] (void blogEntryAdded(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryAdded(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryAdded(BlogEntryEvent)): (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.blog.rootCategory...__Tag@20 == net/sourceforge/pebble/domain/Category
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.blog.rootCategory.__Tag@20 == net/sourceforge/pebble/domain/Category
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.blog.rootCategory@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.blog@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state.__Tag@19 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state.__Tag@20 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state@19 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.tagsAsList@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getBlog(...).__Tag@20 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getBlog(...).tagIndex@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getTagIndex(...).__Tag@20 == net/sourceforge/pebble/index/TagIndex
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getTagIndex(...).blog@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getTagIndex(...).tags@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:isPublished
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:encode
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.index.IndexedTag
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getName
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:recalculateTagRankings
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Map:size
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getNumberOfBlogEntries
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.Math:round
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:calculateRank
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getAllTags
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:addBlogEntry
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Set:size
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Collections:reverse
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getRootCategory
    if (blogEntry.isPublished()) {
      blogEntry.getBlog().getTagIndex().index(blogEntry);
    }
  }
    //#tagindexlistener.java:23: end of method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryAdded(BlogEntryEvent)

  /**
   * Called when a blog entry has been removed.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryRemoved(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#tagindexlistener.java:31: method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryRemoved(BlogEntryEvent)
    //#input(void blogEntryRemoved(BlogEntryEvent)): event
    //#input(void blogEntryRemoved(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getTagIndex()Lnet/sourceforge/pebble/index/TagIndex;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/domain/Tag]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.calculateRank([I)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getNumberOfBlogEntries()I
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.removeBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[net/sourceforge/pebble/index/TagIndex]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.getTag(Ljava/lang/String;)Lnet/sourceforge/pebble/index/IndexedTag;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.unindex(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.log
    //#pre[1] (void blogEntryRemoved(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryRemoved(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): blogEntry.blog@31 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getBlog(...).tagIndex@31 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getTagIndex(...).blog@31 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getTagIndex(...).tags@31 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag is init'ed
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:encode
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.index.IndexedTag
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getName
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:removeBlogEntry
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:recalculateTagRankings
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Map:size
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getNumberOfBlogEntries
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.Math:round
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:calculateRank
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:size
    blogEntry.getBlog().getTagIndex().unindex(blogEntry);
    //#tagindexlistener.java:32: ?null dereference
    //#    net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryRemoved(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#tagindexlistener.java:32: ?null dereference
    //#    net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryRemoved(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#tagindexlistener.java:32: ?null dereference
    //#    net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryRemoved(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
  }
    //#tagindexlistener.java:33: end of method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryRemoved(BlogEntryEvent)

  /**
   * Called when a blog entry has been changed.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryChanged(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#tagindexlistener.java:41: method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryChanged(BlogEntryEvent)
    //#input(void blogEntryChanged(BlogEntryEvent)): event
    //#input(void blogEntryChanged(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryChanged(BlogEntryEvent)): event.propertyChangeEvents
    //#input(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getPropertyChangeEvents()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getTagIndex()Lnet/sourceforge/pebble/index/TagIndex;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getCategories()Ljava/util/Set;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/domain/Tag]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.addBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.calculateRank([I)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getNumberOfBlogEntries()I
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.removeBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[net/sourceforge/pebble/index/TagIndex]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.getTag(Ljava/lang/String;)Lnet/sourceforge/pebble/index/IndexedTag;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.index(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.unindex(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.log
    //#pre[1] (void blogEntryChanged(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryChanged(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryChanged(BlogEntryEvent)): (soft) event.propertyChangeEvents != null
    //#pre[4] (void blogEntryChanged(BlogEntryEvent)): (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog.rootCategory...__Tag@52 == net/sourceforge/pebble/domain/Category
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog.rootCategory.__Tag@52 == net/sourceforge/pebble/domain/Category
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog.rootCategory@52 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog@43 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog@52 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state.__Tag@41 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state.__Tag@52 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state@41 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state@52 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.tagsAsList@52 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).__Tag@43 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).__Tag@52 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).tagIndex@43 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).tagIndex@52 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getTagIndex(...).__Tag@43 == net/sourceforge/pebble/index/TagIndex
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getTagIndex(...).__Tag@43 == net/sourceforge/pebble/index/TagIndex
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getTagIndex(...).blog@43 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getTagIndex(...).blog@52 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getTagIndex(...).tags@43 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getTagIndex(...).tags@52 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): java.beans.PropertyChangeEvent:getPropertyName(...)@48 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): java.util.Iterator:next(...)@47 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:isPublished
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:encode
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.index.IndexedTag
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getName
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:removeBlogEntry
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:recalculateTagRankings
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Map:size
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getNumberOfBlogEntries
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.Math:round
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:calculateRank
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getAllTags
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:addBlogEntry
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Set:size
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Collections:reverse
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getRootCategory
    //#test_vector(void blogEntryChanged(BlogEntryEvent)): java.lang.String:equals(...)@51: {1}, {0}
    //#test_vector(void blogEntryChanged(BlogEntryEvent)): java.lang.String:equals(...)@51: {0}, {1}
    //#test_vector(void blogEntryChanged(BlogEntryEvent)): java.util.Iterator:hasNext(...)@46: {1}, {0}

    if (blogEntry.isPublished()) {
      List propertyChangeEvents = event.getPropertyChangeEvents();
    //#tagindexlistener.java:44: ?null dereference
    //#    net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[event.__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryChanged(BlogEntryEvent)
    //#    basic block: bb_2
    //#    assertion: net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[event.__Tag] != null
    //#    VN: net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[event.__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
      Iterator it = propertyChangeEvents.iterator();
      while (it.hasNext()) {
        PropertyChangeEvent pce = (PropertyChangeEvent)it.next();
        String property = pce.getPropertyName();

        // only if the tags or categories change do we need to reindex the tags
        if (property.equals(BlogEntry.TAGS_PROPERTY) || property.equals(BlogEntry.CATEGORIES_PROPERTY)) {
          blogEntry.getBlog().getTagIndex().unindex(blogEntry);
          blogEntry.getBlog().getTagIndex().index(blogEntry);
        }
      }
    }
  }
    //#tagindexlistener.java:57: end of method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryChanged(BlogEntryEvent)

  /**
   * Called when a blog entry has been published.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryPublished(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#tagindexlistener.java:65: method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryPublished(BlogEntryEvent)
    //#input(void blogEntryPublished(BlogEntryEvent)): event
    //#input(void blogEntryPublished(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getTagIndex()Lnet/sourceforge/pebble/index/TagIndex;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getCategories()Ljava/util/Set;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/domain/Tag]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.addBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.calculateRank([I)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getNumberOfBlogEntries()I
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[net/sourceforge/pebble/index/TagIndex]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.getTag(Ljava/lang/String;)Lnet/sourceforge/pebble/index/IndexedTag;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.index(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.log
    //#pre[1] (void blogEntryPublished(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryPublished(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryPublished(BlogEntryEvent)): (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.blog.rootCategory...__Tag@65 == net/sourceforge/pebble/domain/Category
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.blog.rootCategory.__Tag@65 == net/sourceforge/pebble/domain/Category
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.blog.rootCategory@65 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.blog@65 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.state.__Tag@65 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.state@65 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.tagsAsList@65 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getBlog(...).__Tag@65 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getBlog(...).tagIndex@65 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getTagIndex(...).__Tag@65 == net/sourceforge/pebble/index/TagIndex
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getTagIndex(...).blog@65 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getTagIndex(...).tags@65 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag != net/sourceforge/pebble/index/TagIndex
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:isPublished
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:encode
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.index.IndexedTag
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getName
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:recalculateTagRankings
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:size
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getNumberOfBlogEntries
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.Math:round
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:calculateRank
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getAllTags
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:addBlogEntry
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Set:size
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Collections:reverse
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getRootCategory
    blogEntry.getBlog().getTagIndex().index(blogEntry);
    //#tagindexlistener.java:66: ?null dereference
    //#    net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryPublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#tagindexlistener.java:66: ?null dereference
    //#    net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryPublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#tagindexlistener.java:66: ?null dereference
    //#    net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryPublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
  }
    //#tagindexlistener.java:67: end of method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryPublished(BlogEntryEvent)

  /**
   * Called when a blog entry has been unpublished.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryUnpublished(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#tagindexlistener.java:75: method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryUnpublished(BlogEntryEvent)
    //#input(void blogEntryUnpublished(BlogEntryEvent)): event
    //#input(void blogEntryUnpublished(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getTagIndex()Lnet/sourceforge/pebble/index/TagIndex;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/domain/Tag]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.calculateRank([I)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getNumberOfBlogEntries()I
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.removeBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[net/sourceforge/pebble/index/TagIndex]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.getTag(Ljava/lang/String;)Lnet/sourceforge/pebble/index/IndexedTag;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.__Dispatch_Table.unindex(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/TagIndex.log
    //#pre[1] (void blogEntryUnpublished(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryUnpublished(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): blogEntry.blog@75 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): getBlog(...).tagIndex@75 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): getTagIndex(...).blog@75 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): getTagIndex(...).tags@75 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag is init'ed
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:encode
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.index.IndexedTag
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getName
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:removeBlogEntry
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:recalculateTagRankings
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Map:size
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getNumberOfBlogEntries
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.Math:round
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:calculateRank
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:size
    blogEntry.getBlog().getTagIndex().unindex(blogEntry);
    //#tagindexlistener.java:76: ?null dereference
    //#    net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryUnpublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#tagindexlistener.java:76: ?null dereference
    //#    net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryUnpublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#tagindexlistener.java:76: ?null dereference
    //#    net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.TagIndexListener
    //#    method: void blogEntryUnpublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/index/TagIndex.__Descendant_Table[getTagIndex(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
  }
    //#tagindexlistener.java:77: end of method: void net.sourceforge.pebble.index.TagIndexListener.blogEntryUnpublished(BlogEntryEvent)

}
    //#output(net.sourceforge.pebble.index.TagIndexListener__static_init): __Descendant_Table[net/sourceforge/pebble/index/TagIndexListener]
    //#output(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryAdded(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryChanged(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryPublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryRemoved(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryUnpublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.TagIndexListener__static_init): net/sourceforge/pebble/api/event/blogentry/BlogEntryListener.__Descendant_Table[net/sourceforge/pebble/index/TagIndexListener]
    //#post(net.sourceforge.pebble.index.TagIndexListener__static_init): __Descendant_Table[net/sourceforge/pebble/index/TagIndexListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.index.TagIndexListener__static_init): net/sourceforge/pebble/api/event/blogentry/BlogEntryListener.__Descendant_Table[net/sourceforge/pebble/index/TagIndexListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryAdded(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryAdded
    //#post(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryChanged(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryChanged
    //#post(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryPublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryPublished
    //#post(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryRemoved(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryRemoved
    //#post(net.sourceforge.pebble.index.TagIndexListener__static_init): __Dispatch_Table.blogEntryUnpublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryUnpublished
    //#tagindexlistener.java:: end of method: net.sourceforge.pebble.index.TagIndexListener.net.sourceforge.pebble.index.TagIndexListener__static_init
    //#tagindexlistener.java:: end of class: net.sourceforge.pebble.index.TagIndexListener
