//# 2 errors, 1,142 messages
//#
package net.sourceforge.pebble.dao.file;
    //#fileblogentrydao.java:1:1: class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO

import net.sourceforge.pebble.dao.BlogEntryDAO;
import net.sourceforge.pebble.dao.PersistenceException;
import net.sourceforge.pebble.domain.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.helpers.DefaultHandler;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

public class FileBlogEntryDAO implements BlogEntryDAO {

  /** timezone to use for calculating paths on disk, etc */
  private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
    //#fileblogentrydao.java:28: method: net.sourceforge.pebble.dao.file.FileBlogEntryDAO.net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): GMT
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Descendant_Table[net/sourceforge/pebble/dao/file/FileBlogEntryDAO]
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.createCDATASection(Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/w3c/dom/Node;
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.createTextNode(Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/w3c/dom/Node;
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.getPath(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;Ljava/util/TimeZone;)Ljava/lang/String;
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.loadBlogEntries(Lnet/sourceforge/pebble/domain/Blog;)Ljava/util/Collection;
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.loadBlogEntry(Lnet/sourceforge/pebble/domain/Blog;Ljava/io/File;)Lnet/sourceforge/pebble/domain/BlogEntry;
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.loadBlogEntry(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;)Lnet/sourceforge/pebble/domain/BlogEntry;
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.removeBlogEntry(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeBlogEntry(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeBlogEntry(Lnet/sourceforge/pebble/domain/BlogEntry;Ljava/io/File;)V
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeComment(Lnet/sourceforge/pebble/domain/Comment;Lorg/w3c/dom/Document;Lorg/w3c/dom/Node;)V
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeTrackBack(Lnet/sourceforge/pebble/domain/TrackBack;Lorg/w3c/dom/Document;Lorg/w3c/dom/Node;)V
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): log
    //#output(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): net/sourceforge/pebble/dao/BlogEntryDAO.__Descendant_Table[net/sourceforge/pebble/dao/file/FileBlogEntryDAO]
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): init'ed(GMT)
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Descendant_Table[net/sourceforge/pebble/dao/file/FileBlogEntryDAO] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): net/sourceforge/pebble/dao/BlogEntryDAO.__Descendant_Table[net/sourceforge/pebble/dao/file/FileBlogEntryDAO] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.createCDATASection(Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/w3c/dom/Node; == &createCDATASection
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.createTextNode(Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/w3c/dom/Node; == &createTextNode
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.getPath(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;Ljava/util/TimeZone;)Ljava/lang/String; == &getPath
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.loadBlogEntries(Lnet/sourceforge/pebble/domain/Blog;)Ljava/util/Collection; == &loadBlogEntries
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.loadBlogEntry(Lnet/sourceforge/pebble/domain/Blog;Ljava/io/File;)Lnet/sourceforge/pebble/domain/BlogEntry; == &loadBlogEntry
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.loadBlogEntry(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;)Lnet/sourceforge/pebble/domain/BlogEntry; == &loadBlogEntry
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.removeBlogEntry(Lnet/sourceforge/pebble/domain/BlogEntry;)V == &removeBlogEntry
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeBlogEntry(Lnet/sourceforge/pebble/domain/BlogEntry;)V == &storeBlogEntry
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeBlogEntry(Lnet/sourceforge/pebble/domain/BlogEntry;Ljava/io/File;)V == &storeBlogEntry
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeComment(Lnet/sourceforge/pebble/domain/Comment;Lorg/w3c/dom/Document;Lorg/w3c/dom/Node;)V == &storeComment
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): __Dispatch_Table.storeTrackBack(Lnet/sourceforge/pebble/domain/TrackBack;Lorg/w3c/dom/Document;Lorg/w3c/dom/Node;)V == &storeTrackBack
    //#post(net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init): init'ed(log)

  /**
   * the log used by this class
   */
  private static Log log = LogFactory.getLog(FileBlogEntryDAO.class);
    //#fileblogentrydao.java:33: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#fileblogentrydao.java:33: end of method: net.sourceforge.pebble.dao.file.FileBlogEntryDAO.net.sourceforge.pebble.dao.file.FileBlogEntryDAO__static_init

  public FileBlogEntryDAO() {
    //#fileblogentrydao.java:35: method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.net.sourceforge.pebble.dao.file.FileBlogEntryDAO()
  }
    //#fileblogentrydao.java:36: end of method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.net.sourceforge.pebble.dao.file.FileBlogEntryDAO()

  /** the date/time format used when persisting dates */
  static final String OLD_PERSISTENT_DATETIME_FORMAT = "dd MMM yyyy HH:mm:ss z";
  static final String NEW_PERSISTENT_DATETIME_FORMAT = "dd MMM yyyy HH:mm:ss:S Z";
  static final String REGEX_FOR_YEAR = "\\d\\d\\d\\d";

  /**
   * Loads a specific blog entry.
   *
   * @param blogEntryId   the blog entry ID
   * @return a BlogEntry instance
   * @throws net.sourceforge.pebble.dao.PersistenceException
   *          if the specified blog entry cannot be loaded
   */
  public BlogEntry loadBlogEntry(Blog blog, String blogEntryId) throws PersistenceException {
    File path = new File(getPath(blog, blogEntryId, GMT));
    //#fileblogentrydao.java:52: method: BlogEntry net.sourceforge.pebble.dao.file.FileBlogEntryDAO.loadBlogEntry(Blog, String)
    //#input(BlogEntry loadBlogEntry(Blog, String)): GMT
    //#input(BlogEntry loadBlogEntry(Blog, String)): __Descendant_Table[net/sourceforge/pebble/dao/file/FileBlogEntryDAO]
    //#input(BlogEntry loadBlogEntry(Blog, String)): __Descendant_Table[others]
    //#input(BlogEntry loadBlogEntry(Blog, String)): __Dispatch_Table.getPath(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;Ljava/util/TimeZone;)Ljava/lang/String;
    //#input(BlogEntry loadBlogEntry(Blog, String)): blog
    //#input(BlogEntry loadBlogEntry(Blog, String)): blogEntryId
    //#input(BlogEntry loadBlogEntry(Blog, String)): log
    //#input(BlogEntry loadBlogEntry(Blog, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4).__Tag
    //#input(BlogEntry loadBlogEntry(Blog, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.addEvent(Lnet/sourceforge/pebble/api/event/PebbleEvent;)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.areEventsEnabled()Z
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isUnpublished()Z
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setPublished(Z)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/State.APPROVED
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/State.UNPUBLISHED
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(BlogEntry loadBlogEntry(Blog, String)): this
    //#input(BlogEntry loadBlogEntry(Blog, String)): this.__Tag
    //#output(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(BlogEntry#2) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(BlogEntry#3) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(Content#1) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(Content#3) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).__Tag
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).author
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).blog
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).body
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).categories
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).comments
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).commentsEnabled
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).date
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).events
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).eventsEnabled
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).excerpt
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).id
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).lockedBy
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).permalink
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).persistent
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).propertyChangeEvents
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).propertyChangeSupport
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).state
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).subtitle
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).tags
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).tagsAsCommaSeparated
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).tagsAsList
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).title
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).trackBacks
    //#output(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).trackBacksEnabled
    //#output(BlogEntry loadBlogEntry(Blog, String)): new Date(PageBasedContent#2) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new HashSet(BlogEntry#1) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new LinkedList(PageBasedContent#1) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): new PropertyChangeSupport(Content#2) num objects
    //#output(BlogEntry loadBlogEntry(Blog, String)): return_value
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(BlogEntry#2)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(BlogEntry#3)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(Content#1)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(Content#3)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new Date(PageBasedContent#2)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new HashSet(BlogEntry#1)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new LinkedList(PageBasedContent#1)
    //#new obj(BlogEntry loadBlogEntry(Blog, String)): new PropertyChangeSupport(Content#2)
    //#pre[1] (BlogEntry loadBlogEntry(Blog, String)): blog != null
    //#pre[7] (BlogEntry loadBlogEntry(Blog, String)): this.__Tag == net/sourceforge/pebble/dao/file/FileBlogEntryDAO
    //#pre[3] (BlogEntry loadBlogEntry(Blog, String)): (soft) log != null
    //#post(BlogEntry loadBlogEntry(Blog, String)): return_value == One-of{&new BlogEntry(loadBlogEntry#2*), null}
    //#post(BlogEntry loadBlogEntry(Blog, String)): return_value in Addr_Set{null,&new BlogEntry(loadBlogEntry#2*)}
    //#post(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(BlogEntry#2) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(BlogEntry#3) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(Content#1) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new ArrayList(Content#3) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new Date(PageBasedContent#2) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new HashSet(BlogEntry#1) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new LinkedList(PageBasedContent#1) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new PropertyChangeSupport(Content#2) num objects == new ArrayList(BlogEntry#2) num objects
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).author == &""
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).body == &""
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).excerpt == &""
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).subtitle == &""
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).tags == &""
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).tagsAsCommaSeparated == &""
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).title == &""
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).blog == blog
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).blog != null
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).categories == &new HashSet(BlogEntry#1)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).comments == &new ArrayList(BlogEntry#2)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).commentsEnabled == 1
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).trackBacksEnabled == 1
    //#post(BlogEntry loadBlogEntry(Blog, String)): init'ed(new BlogEntry(loadBlogEntry#2*).date)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).events == &new ArrayList(Content#1)
    //#post(BlogEntry loadBlogEntry(Blog, String)): init'ed(new BlogEntry(loadBlogEntry#2*).eventsEnabled)
    //#post(BlogEntry loadBlogEntry(Blog, String)): possibly_updated(new BlogEntry(loadBlogEntry#2*).id)
    //#post(BlogEntry loadBlogEntry(Blog, String)): init'ed(new BlogEntry(loadBlogEntry#2*).lockedBy)
    //#post(BlogEntry loadBlogEntry(Blog, String)): init'ed(new BlogEntry(loadBlogEntry#2*).permalink)
    //#post(BlogEntry loadBlogEntry(Blog, String)): init'ed(new BlogEntry(loadBlogEntry#2*).persistent)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).propertyChangeEvents == &new ArrayList(Content#3)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).propertyChangeSupport == &new PropertyChangeSupport(Content#2)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).state == &net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).tagsAsList == &new LinkedList(PageBasedContent#1)
    //#post(BlogEntry loadBlogEntry(Blog, String)): new BlogEntry(loadBlogEntry#2*).trackBacks == &new ArrayList(BlogEntry#3)
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.io.File:exists
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.io.File:getAbsolutePath
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.beans.PropertyChangeSupport:firePropertyChange
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:setState
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.beans.PropertyChangeSupport
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.beans.PropertyChangeSupport:addPropertyChangeListener
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.util.LinkedList
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.util.Date
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:setDate
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:getBlog
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:org.xml.sax.helpers.DefaultHandler
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getTimeZone
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.text.SimpleDateFormat:setTimeZone
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:newInstance
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:setValidating
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:setNamespaceAware
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:newSAXParser
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:javax.xml.parsers.SAXParser:parse
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.Exception:getMessage
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.Exception:printStackTrace
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getRoot
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.text.DateFormat:setTimeZone
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.Long:parseLong
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.text.DateFormat:format
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:net.sourceforge.pebble.api.event.PebbleEvent
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.util.List:add
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, String)): Effects-of-calling:java.util.EventObject
    File file = new File(path, blogEntryId + ".xml");
    return loadBlogEntry(blog, file);
    //#fileblogentrydao.java:54: end of method: BlogEntry net.sourceforge.pebble.dao.file.FileBlogEntryDAO.loadBlogEntry(Blog, String)
  }

  /**
   * Loads a blog entry from the specified file.
   *
   * @param source    the File pointing to the source
   * @throws net.sourceforge.pebble.dao.PersistenceException
   *          if the blog entry can't be loaded
   */
  private BlogEntry loadBlogEntry(Blog blog, File source) throws PersistenceException {
    if (source.exists()) {
    //#fileblogentrydao.java:65: method: BlogEntry net.sourceforge.pebble.dao.file.FileBlogEntryDAO.loadBlogEntry(Blog, File)
    //#input(BlogEntry loadBlogEntry(Blog, File)): blog
    //#input(BlogEntry loadBlogEntry(Blog, File)): log
    //#input(BlogEntry loadBlogEntry(Blog, File)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4).__Tag
    //#input(BlogEntry loadBlogEntry(Blog, File)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.addEvent(Lnet/sourceforge/pebble/api/event/PebbleEvent;)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.areEventsEnabled()Z
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isUnpublished()Z
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setPublished(Z)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/State.APPROVED
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/State.UNPUBLISHED
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(BlogEntry loadBlogEntry(Blog, File)): source
    //#output(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(BlogEntry#2) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(BlogEntry#3) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(Content#1) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(Content#3) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).__Tag
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).author
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).blog
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).body
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).categories
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).comments
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).commentsEnabled
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).date
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).events
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).eventsEnabled
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).excerpt
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).id
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).lockedBy
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).permalink
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).persistent
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).propertyChangeEvents
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).propertyChangeSupport
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).state
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).subtitle
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).tags
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).tagsAsCommaSeparated
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).tagsAsList
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).title
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).trackBacks
    //#output(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).trackBacksEnabled
    //#output(BlogEntry loadBlogEntry(Blog, File)): new Date(PageBasedContent#2) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new HashSet(BlogEntry#1) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new LinkedList(PageBasedContent#1) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): new PropertyChangeSupport(Content#2) num objects
    //#output(BlogEntry loadBlogEntry(Blog, File)): return_value
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(BlogEntry#2)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(BlogEntry#3)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(Content#1)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(Content#3)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new Date(PageBasedContent#2)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new HashSet(BlogEntry#1)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new LinkedList(PageBasedContent#1)
    //#new obj(BlogEntry loadBlogEntry(Blog, File)): new PropertyChangeSupport(Content#2)
    //#pre[5] (BlogEntry loadBlogEntry(Blog, File)): source != null
    //#pre[1] (BlogEntry loadBlogEntry(Blog, File)): (soft) blog != null
    //#pre[2] (BlogEntry loadBlogEntry(Blog, File)): (soft) log != null
    //#presumption(BlogEntry loadBlogEntry(Blog, File)): javax.xml.parsers.SAXParserFactory:newInstance(...)@71 != null
    //#presumption(BlogEntry loadBlogEntry(Blog, File)): javax.xml.parsers.SAXParserFactory:newSAXParser(...)@74 != null
    //#post(BlogEntry loadBlogEntry(Blog, File)): return_value in Addr_Set{null,&new BlogEntry(loadBlogEntry#2)}
    //#post(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(BlogEntry#2) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(BlogEntry#3) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(Content#1) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new ArrayList(Content#3) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).author == &""
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).blog == blog
    //#post(BlogEntry loadBlogEntry(Blog, File)): (soft) new BlogEntry(loadBlogEntry#2).blog != null
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).body == &""
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).categories == &new HashSet(BlogEntry#1)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).comments == &new ArrayList(BlogEntry#2)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).commentsEnabled == 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): init'ed(new BlogEntry(loadBlogEntry#2).date)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).events == &new ArrayList(Content#1)
    //#post(BlogEntry loadBlogEntry(Blog, File)): init'ed(new BlogEntry(loadBlogEntry#2).eventsEnabled)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).excerpt == &""
    //#post(BlogEntry loadBlogEntry(Blog, File)): possibly_updated(new BlogEntry(loadBlogEntry#2).id)
    //#post(BlogEntry loadBlogEntry(Blog, File)): init'ed(new BlogEntry(loadBlogEntry#2).lockedBy)
    //#post(BlogEntry loadBlogEntry(Blog, File)): init'ed(new BlogEntry(loadBlogEntry#2).permalink)
    //#post(BlogEntry loadBlogEntry(Blog, File)): init'ed(new BlogEntry(loadBlogEntry#2).persistent)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).propertyChangeEvents == &new ArrayList(Content#3)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).propertyChangeSupport == &new PropertyChangeSupport(Content#2)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).state == &net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).subtitle == &""
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).tags == &""
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).tagsAsCommaSeparated == &""
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).tagsAsList == &new LinkedList(PageBasedContent#1)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).title == &""
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).trackBacks == &new ArrayList(BlogEntry#3)
    //#post(BlogEntry loadBlogEntry(Blog, File)): new BlogEntry(loadBlogEntry#2).trackBacksEnabled == 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new Date(PageBasedContent#2) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new HashSet(BlogEntry#1) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new LinkedList(PageBasedContent#1) num objects <= 1
    //#post(BlogEntry loadBlogEntry(Blog, File)): new PropertyChangeSupport(Content#2) num objects <= 1
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.beans.PropertyChangeSupport:firePropertyChange
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:setState
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.beans.PropertyChangeSupport
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.beans.PropertyChangeSupport:addPropertyChangeListener
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.util.LinkedList
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.util.Date
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:setDate
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:getBlog
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:org.xml.sax.helpers.DefaultHandler
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getTimeZone
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.text.SimpleDateFormat:setTimeZone
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:net.sourceforge.pebble.api.event.PebbleEvent
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.util.List:add
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(BlogEntry loadBlogEntry(Blog, File)): Effects-of-calling:java.util.EventObject
    //#test_vector(BlogEntry loadBlogEntry(Blog, File)): java.io.File:exists(...)@65: {0}, {1}
      log.debug("Loading " + source.getAbsolutePath());
    //#fileblogentrydao.java:66: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: BlogEntry loadBlogEntry(Blog, File)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
      BlogEntry blogEntry = new BlogEntry(blog);

      try {
        DefaultHandler handler = new BlogEntryHandler(blogEntry);
        SAXParserFactory saxFactory = SAXParserFactory.newInstance();
        saxFactory.setValidating(false);
        saxFactory.setNamespaceAware(true);
        SAXParser parser = saxFactory.newSAXParser();
        parser.parse(source, handler);

      } catch (Exception e) {
        log.error(e.getMessage() + " while loading blog enty from " + source.getAbsolutePath(), e);
        e.printStackTrace();
        throw new PersistenceException(e.getMessage());
      }

      return blogEntry;
    } else {
      return null;
    //#fileblogentrydao.java:85: end of method: BlogEntry net.sourceforge.pebble.dao.file.FileBlogEntryDAO.loadBlogEntry(Blog, File)
    }
  }

  /**
   * Loads all blog entries.
   *
   * @param blog the Blog to load all entries for
   * @return a List of BlogEntry objects
   * @throws net.sourceforge.pebble.dao.PersistenceException
   *          if the blog entries cannot be loaded
   */
  public Collection<BlogEntry> loadBlogEntries(Blog blog) throws PersistenceException {
    List<BlogEntry> list = new ArrayList<BlogEntry>();
    //#fileblogentrydao.java:98: method: Collection net.sourceforge.pebble.dao.file.FileBlogEntryDAO.loadBlogEntries(Blog)
    //#input(Collection loadBlogEntries(Blog)): blog
    //#input(Collection loadBlogEntries(Blog)): log
    //#input(Collection loadBlogEntries(Blog)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4).__Tag
    //#input(Collection loadBlogEntries(Blog)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.addEvent(Lnet/sourceforge/pebble/api/event/PebbleEvent;)V
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.areEventsEnabled()Z
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isUnpublished()Z
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setPublished(Z)V
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/State.APPROVED
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/State.UNPUBLISHED
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Collection loadBlogEntries(Blog)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(Collection loadBlogEntries(Blog)): this
    //#output(Collection loadBlogEntries(Blog)): new ArrayList(loadBlogEntries#1) num objects
    //#output(Collection loadBlogEntries(Blog)): return_value
    //#new obj(Collection loadBlogEntries(Blog)): new ArrayList(loadBlogEntries#1)
    //#pre[1] (Collection loadBlogEntries(Blog)): blog != null
    //#pre[2] (Collection loadBlogEntries(Blog)): (soft) log != null
    //#presumption(Collection loadBlogEntries(Blog)): Local_13[Local_11]@103 != null
    //#presumption(Collection loadBlogEntries(Blog)): Local_18[Local_16]@105 != null
    //#presumption(Collection loadBlogEntries(Blog)): Local_23[Local_21]@107 != null
    //#presumption(Collection loadBlogEntries(Blog)): Local_8[Local_6]@101 != null
    //#presumption(Collection loadBlogEntries(Blog)): blogEntryFiles.length@107 <= 4_294_967_295
    //#presumption(Collection loadBlogEntries(Blog)): days.length@105 <= 4_294_967_295
    //#presumption(Collection loadBlogEntries(Blog)): java.io.File:listFiles(...)@101 != null
    //#presumption(Collection loadBlogEntries(Blog)): java.io.File:listFiles(...)@103 != null
    //#presumption(Collection loadBlogEntries(Blog)): java.io.File:listFiles(...)@105 != null
    //#presumption(Collection loadBlogEntries(Blog)): java.io.File:listFiles(...)@107 != null
    //#presumption(Collection loadBlogEntries(Blog)): months.length@103 <= 4_294_967_295
    //#presumption(Collection loadBlogEntries(Blog)): years.length@101 <= 4_294_967_295
    //#post(Collection loadBlogEntries(Blog)): return_value == &new ArrayList(loadBlogEntries#1)
    //#post(Collection loadBlogEntries(Blog)): new ArrayList(loadBlogEntries#1) num objects == 1
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.io.File:exists
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.io.File:getAbsolutePath
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.beans.PropertyChangeSupport:firePropertyChange
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:setState
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.beans.PropertyChangeSupport
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.beans.PropertyChangeSupport:addPropertyChangeListener
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.util.LinkedList
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.util.Date
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:setDate
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:getBlog
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:org.xml.sax.helpers.DefaultHandler
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getTimeZone
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.text.SimpleDateFormat:setTimeZone
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:newInstance
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:setValidating
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:setNamespaceAware
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:javax.xml.parsers.SAXParserFactory:newSAXParser
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:javax.xml.parsers.SAXParser:parse
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.Exception:getMessage
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.Exception:printStackTrace
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:net.sourceforge.pebble.api.event.PebbleEvent
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(Collection loadBlogEntries(Blog)): Effects-of-calling:java.util.EventObject

    File root = new File(blog.getRoot());
    //#fileblogentrydao.java:100: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.domain.Blog:getRoot()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: Collection loadBlogEntries(Blog)
    //#    unanalyzed callee: String net.sourceforge.pebble.domain.Blog:getRoot()
    File years[] = root.listFiles(new FourDigitFilenameFilter());
    for (File year : years) {
      File months[] = year.listFiles(new TwoDigitFilenameFilter());
      for (File month : months) {
        File days[] = month.listFiles(new TwoDigitFilenameFilter());
        for (File day : days) {
          File blogEntryFiles[] = day.listFiles(new BlogEntryFilenameFilter());
          for (File blogEntryFile : blogEntryFiles) {
            list.add(loadBlogEntry(blog, blogEntryFile));
          }
        }
      }
    }

    return list;
    //#fileblogentrydao.java:115: end of method: Collection net.sourceforge.pebble.dao.file.FileBlogEntryDAO.loadBlogEntries(Blog)
  }

  /**
   * Stores the specified blog entry.
   *
   * @param blogEntry the blog entry to store
   * @throws PersistenceException if something goes wrong storing the entry
   */
  public void storeBlogEntry(BlogEntry blogEntry) throws PersistenceException {
    File outputDir = new File(getPath(blogEntry.getBlog(), blogEntry.getId(), GMT));
    //#fileblogentrydao.java:125: method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeBlogEntry(BlogEntry)
    //#input(void storeBlogEntry(BlogEntry)): GMT
    //#input(void storeBlogEntry(BlogEntry)): __Descendant_Table[net/sourceforge/pebble/dao/file/FileBlogEntryDAO]
    //#input(void storeBlogEntry(BlogEntry)): __Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry)): __Dispatch_Table.getPath(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;Ljava/util/TimeZone;)Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): blogEntry
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.__Tag
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.attachment
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.attachment.__Tag
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.attachment.size
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.attachment.type
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.attachment.url
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.author
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.blog
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.body
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.categories
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.comments
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.commentsEnabled
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.date
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.excerpt
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.id
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.originalPermalink
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.state
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.state.__Tag
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.state.name
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.subtitle
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.tags
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.timeZoneId
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.title
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.trackBacks
    //#input(void storeBlogEntry(BlogEntry)): blogEntry.trackBacksEnabled
    //#input(void storeBlogEntry(BlogEntry)): log
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Attachment.__Descendant_Table[net/sourceforge/pebble/domain/Attachment]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Attachment.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.getSize()J
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.getType()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAttachment()Lnet/sourceforge/pebble/domain/Attachment;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBody()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getCategories()Ljava/util/Set;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getComments()Ljava/util/List;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getExcerpt()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getOriginalPermalink()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getSubtitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTags()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTimeZoneId()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTrackBacks()Ljava/util/List;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isAggregated()Z
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isCommentsEnabled()Z
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isTrackBacksEnabled()Z
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBody()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getComments()Ljava/util/List;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getEmail()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getIpAddress()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getWebsite()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.isAuthenticated()Z
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getExcerpt()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getIpAddress()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry)): this
    //#input(void storeBlogEntry(BlogEntry)): this.__Tag
    //#pre[1] (void storeBlogEntry(BlogEntry)): blogEntry != null
    //#pre[2] (void storeBlogEntry(BlogEntry)): blogEntry.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#pre[3] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.attachment)
    //#pre[8] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.author)
    //#pre[9] (void storeBlogEntry(BlogEntry)): blogEntry.blog != null
    //#pre[10] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.body)
    //#pre[11] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.categories)
    //#pre[12] (void storeBlogEntry(BlogEntry)): blogEntry.comments != null
    //#pre[13] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.commentsEnabled)
    //#pre[14] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.date)
    //#pre[15] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.excerpt)
    //#pre[16] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.id)
    //#pre[17] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.originalPermalink)
    //#pre[18] (void storeBlogEntry(BlogEntry)): blogEntry.state != null
    //#pre[19] (void storeBlogEntry(BlogEntry)): blogEntry.state.__Tag == net/sourceforge/pebble/domain/State
    //#pre[20] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.state.name)
    //#pre[21] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.subtitle)
    //#pre[22] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.tags)
    //#pre[23] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.timeZoneId)
    //#pre[24] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.title)
    //#pre[25] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.trackBacks)
    //#pre[26] (void storeBlogEntry(BlogEntry)): init'ed(blogEntry.trackBacksEnabled)
    //#pre[27] (void storeBlogEntry(BlogEntry)): log != null
    //#pre[29] (void storeBlogEntry(BlogEntry)): this.__Tag == net/sourceforge/pebble/dao/file/FileBlogEntryDAO
    //#pre[4] (void storeBlogEntry(BlogEntry)): (soft) blogEntry.attachment.__Tag == net/sourceforge/pebble/domain/Attachment
    //#pre[5] (void storeBlogEntry(BlogEntry)): (soft) init'ed(blogEntry.attachment.size)
    //#pre[6] (void storeBlogEntry(BlogEntry)): (soft) init'ed(blogEntry.attachment.type)
    //#pre[7] (void storeBlogEntry(BlogEntry)): (soft) init'ed(blogEntry.attachment.url)
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.File:exists
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.File:getAbsolutePath
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.Exception:getMessage
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.Exception:printStackTrace
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getRoot
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.w3c.dom.Document:createTextNode
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.w3c.dom.Document:createCDATASection
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.text.DateFormat:setTimeZone
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.Long:parseLong
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.Date
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.text.DateFormat:format
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.File
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.File:getParentFile
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.File:getName
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.parsers.DocumentBuilderFactory:newInstance
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.parsers.DocumentBuilderFactory:setValidating
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.parsers.DocumentBuilderFactory:setNamespaceAware
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.parsers.DocumentBuilderFactory:setIgnoringElementContentWhitespace
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.parsers.DocumentBuilderFactory:setIgnoringComments
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.parsers.DocumentBuilderFactory:newDocumentBuilder
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.parsers.DocumentBuilder:newDocument
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.w3c.dom.Document:createElement
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.w3c.dom.Document:appendChild
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.w3c.dom.Element:appendChild
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.text.SimpleDateFormat:setTimeZone
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getTimeZoneId
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:getComments
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:storeComment
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:storeTrackBack
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.StringWriter
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.transform.dom.DOMSource
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.transform.stream.StreamResult
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.transform.TransformerFactory:newInstance
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.transform.TransformerFactory:newTransformer
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.transform.Transformer:setOutputProperty
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:javax.xml.transform.Transformer:transform
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.File:length
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.File:renameTo
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.FileOutputStream
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.OutputStreamWriter
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.StringWriter:getBuffer
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:org.w3c.dom.Node:appendChild
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void storeBlogEntry(BlogEntry)): Effects-of-calling:java.util.Date:getTime
    //#test_vector(void storeBlogEntry(BlogEntry)): java.io.File:exists(...)@126: {1}, {0}
    if (!outputDir.exists()) {
      outputDir.mkdirs();
    }

    File outputFile = new File(outputDir, blogEntry.getId() + ".xml");
    storeBlogEntry(blogEntry, outputFile);
  }
    //#fileblogentrydao.java:132: end of method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeBlogEntry(BlogEntry)


  /**
   * Stores a blog entry to the specified file.
   *
   * @param blogEntry   the BlogEntry that is being stored
   * @param destination the File pointing to the destination
   * @throws PersistenceException if something goes wrong storing the entry
   */
  private void storeBlogEntry(BlogEntry blogEntry, File destination) throws PersistenceException {
    File backupFile = new File(destination.getParentFile(), destination.getName() + ".bak");
    //#fileblogentrydao.java:143: method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeBlogEntry(BlogEntry, File)
    //#input(void storeBlogEntry(BlogEntry, File)): GMT
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.__Tag
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.attachment
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.attachment.__Tag
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.attachment.size
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.attachment.type
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.attachment.url
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.author
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.blog
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.body
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.categories
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.comments
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.commentsEnabled
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.date
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.excerpt
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.originalPermalink
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.state
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.state.__Tag
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.state.name
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.subtitle
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.tags
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.timeZoneId
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.title
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.trackBacks
    //#input(void storeBlogEntry(BlogEntry, File)): blogEntry.trackBacksEnabled
    //#input(void storeBlogEntry(BlogEntry, File)): destination
    //#input(void storeBlogEntry(BlogEntry, File)): java.util.Locale.ENGLISH
    //#input(void storeBlogEntry(BlogEntry, File)): log
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Attachment.__Descendant_Table[net/sourceforge/pebble/domain/Attachment]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Attachment.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.getSize()J
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.getType()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAttachment()Lnet/sourceforge/pebble/domain/Attachment;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBody()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getCategories()Ljava/util/Set;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getComments()Ljava/util/List;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getExcerpt()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getOriginalPermalink()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getSubtitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTags()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTimeZoneId()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTrackBacks()Ljava/util/List;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isAggregated()Z
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isCommentsEnabled()Z
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isTrackBacksEnabled()Z
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBody()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getComments()Ljava/util/List;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getEmail()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getIpAddress()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getWebsite()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.isAuthenticated()Z
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getExcerpt()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getIpAddress()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void storeBlogEntry(BlogEntry, File)): this
    //#pre[1] (void storeBlogEntry(BlogEntry, File)): blogEntry != null
    //#pre[2] (void storeBlogEntry(BlogEntry, File)): blogEntry.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#pre[3] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.attachment)
    //#pre[8] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.author)
    //#pre[10] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.body)
    //#pre[11] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.categories)
    //#pre[12] (void storeBlogEntry(BlogEntry, File)): blogEntry.comments != null
    //#pre[13] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.commentsEnabled)
    //#pre[14] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.date)
    //#pre[15] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.excerpt)
    //#pre[16] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.originalPermalink)
    //#pre[17] (void storeBlogEntry(BlogEntry, File)): blogEntry.state != null
    //#pre[18] (void storeBlogEntry(BlogEntry, File)): blogEntry.state.__Tag == net/sourceforge/pebble/domain/State
    //#pre[19] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.state.name)
    //#pre[20] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.subtitle)
    //#pre[21] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.tags)
    //#pre[22] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.timeZoneId)
    //#pre[23] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.title)
    //#pre[24] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.trackBacks)
    //#pre[25] (void storeBlogEntry(BlogEntry, File)): init'ed(blogEntry.trackBacksEnabled)
    //#pre[26] (void storeBlogEntry(BlogEntry, File)): destination != null
    //#pre[27] (void storeBlogEntry(BlogEntry, File)): log != null
    //#pre[4] (void storeBlogEntry(BlogEntry, File)): (soft) blogEntry.attachment.__Tag == net/sourceforge/pebble/domain/Attachment
    //#pre[5] (void storeBlogEntry(BlogEntry, File)): (soft) init'ed(blogEntry.attachment.size)
    //#pre[6] (void storeBlogEntry(BlogEntry, File)): (soft) init'ed(blogEntry.attachment.type)
    //#pre[7] (void storeBlogEntry(BlogEntry, File)): (soft) init'ed(blogEntry.attachment.url)
    //#pre[9] (void storeBlogEntry(BlogEntry, File)): (soft) blogEntry.blog != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): comment.state.__Tag@245 == net/sourceforge/pebble/domain/State
    //#presumption(void storeBlogEntry(BlogEntry, File)): comment.state@245 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): java.io.StringWriter:getBuffer(...)@277 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:next(...).__Tag@205 == net/sourceforge/pebble/domain/Category
    //#presumption(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:next(...).__Tag@245 == net/sourceforge/pebble/domain/Comment
    //#presumption(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:next(...).__Tag@252 == net/sourceforge/pebble/domain/TrackBack
    //#presumption(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:next(...)@205 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:next(...)@245 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:next(...)@252 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): init'ed(java.util.Locale.ENGLISH)
    //#presumption(void storeBlogEntry(BlogEntry, File)): javax.xml.parsers.DocumentBuilder:newDocument(...)@152 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): javax.xml.parsers.DocumentBuilderFactory:newDocumentBuilder(...)@151 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): javax.xml.parsers.DocumentBuilderFactory:newInstance(...)@145 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): javax.xml.transform.TransformerFactory:newInstance(...)@261 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): javax.xml.transform.TransformerFactory:newTransformer(...)@261 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@154 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@157 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@158 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@159 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@160 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@162 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@163 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@164 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@165 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@166 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@168 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@169 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@170 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@183 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@206 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@231 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@234 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): org.w3c.dom.Document:createElement(...)@237 != null
    //#presumption(void storeBlogEntry(BlogEntry, File)): trackBack.state.__Tag@252 == net/sourceforge/pebble/domain/State
    //#presumption(void storeBlogEntry(BlogEntry, File)): trackBack.state@252 != null
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:org.w3c.dom.Document:createTextNode
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:org.w3c.dom.Document:createCDATASection
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:org.w3c.dom.Document:createElement
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:org.w3c.dom.Element:appendChild
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.text.SimpleDateFormat:setTimeZone
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getTimeZoneId
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:getComments
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:org.w3c.dom.Node:appendChild
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void storeBlogEntry(BlogEntry, File)): Effects-of-calling:java.util.Date:getTime
    //#test_vector(void storeBlogEntry(BlogEntry, File)): blogEntry.attachment: Addr_Set{null}, Inverse{null}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): blogEntry.author: Addr_Set{null}, Inverse{null}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): blogEntry.excerpt: Addr_Set{null}, Inverse{null}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): blogEntry.originalPermalink: Addr_Set{null}, Inverse{null}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): blogEntry.tags: Addr_Set{null}, Inverse{null}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): java.io.File:exists(...)@270: {0}, {1}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): java.io.File:length(...)@270: {-9_223_372_036_854_775_808..0}, {1..18_446_744_073_709_551_615}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:hasNext(...)@204: {1}, {0}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:hasNext(...)@244: {1}, {0}
    //#test_vector(void storeBlogEntry(BlogEntry, File)): java.util.Iterator:hasNext(...)@251: {1}, {0}
    try {
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      factory.setValidating(false);
      factory.setNamespaceAware(true);
      factory.setIgnoringElementContentWhitespace(true);
      factory.setIgnoringComments(true);

      DocumentBuilder builder = factory.newDocumentBuilder();
      Document doc = builder.newDocument();

      Element root = doc.createElement("blogEntry");
    //#fileblogentrydao.java:154: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      doc.appendChild(root);
    //#fileblogentrydao.java:155: Warning: method not available
    //#    -- call on Node org.w3c.dom.Document:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Document:appendChild(Node)

      Element titleNode = doc.createElement("title");
    //#fileblogentrydao.java:157: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element subtitleNode = doc.createElement("subtitle");
    //#fileblogentrydao.java:158: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element excerptNode = doc.createElement("excerpt");
    //#fileblogentrydao.java:159: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element bodyNode = doc.createElement("body");
    //#fileblogentrydao.java:160: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element categoryNode;
      Element tagsNode = doc.createElement("tags");
    //#fileblogentrydao.java:162: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element dateNode = doc.createElement("date");
    //#fileblogentrydao.java:163: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element timeZoneNode = doc.createElement("timeZone");
    //#fileblogentrydao.java:164: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element stateNode = doc.createElement("state");
    //#fileblogentrydao.java:165: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element authorNode = doc.createElement("author");
    //#fileblogentrydao.java:166: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element staticNameNode = doc.createElement("staticName");
    //#fileblogentrydao.java:167: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element commentsEnabledNode = doc.createElement("commentsEnabled");
    //#fileblogentrydao.java:168: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element trackBacksEnabledNode = doc.createElement("trackBacksEnabled");
    //#fileblogentrydao.java:169: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
      Element attachmentNode = doc.createElement("attachment");
    //#fileblogentrydao.java:170: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)

      root.appendChild(titleNode);
    //#fileblogentrydao.java:172: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(subtitleNode);
    //#fileblogentrydao.java:173: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(excerptNode);
    //#fileblogentrydao.java:174: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(bodyNode);
    //#fileblogentrydao.java:175: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(dateNode);
    //#fileblogentrydao.java:176: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(timeZoneNode);
    //#fileblogentrydao.java:177: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(stateNode);
    //#fileblogentrydao.java:178: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(authorNode);
    //#fileblogentrydao.java:179: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      root.appendChild(staticNameNode);
    //#fileblogentrydao.java:180: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

      if (blogEntry.isAggregated()) {
        Element permalinkNode = doc.createElement("originalPermalink");
    //#fileblogentrydao.java:183: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
        permalinkNode.appendChild(doc.createTextNode(blogEntry.getOriginalPermalink()));
    //#fileblogentrydao.java:184: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:184: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        root.appendChild(permalinkNode);
    //#fileblogentrydao.java:185: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      }

      titleNode.appendChild(doc.createTextNode(blogEntry.getTitle()));
    //#fileblogentrydao.java:188: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:188: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      subtitleNode.appendChild(doc.createTextNode(blogEntry.getSubtitle()));
    //#fileblogentrydao.java:189: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:189: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      bodyNode.appendChild(doc.createCDATASection(blogEntry.getBody()));
    //#fileblogentrydao.java:190: Warning: method not available
    //#    -- call on CDATASection org.w3c.dom.Document:createCDATASection(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: CDATASection org.w3c.dom.Document:createCDATASection(String)
    //#fileblogentrydao.java:190: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

      if (blogEntry.getExcerpt() != null) {
        excerptNode.appendChild(doc.createCDATASection(blogEntry.getExcerpt()));
    //#fileblogentrydao.java:193: Warning: method not available
    //#    -- call on CDATASection org.w3c.dom.Document:createCDATASection(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: CDATASection org.w3c.dom.Document:createCDATASection(String)
    //#fileblogentrydao.java:193: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      }

      root.appendChild(commentsEnabledNode);
    //#fileblogentrydao.java:196: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      commentsEnabledNode.appendChild(doc.createTextNode("" + blogEntry.isCommentsEnabled()));
    //#fileblogentrydao.java:197: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:197: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

      root.appendChild(trackBacksEnabledNode);
    //#fileblogentrydao.java:199: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      trackBacksEnabledNode.appendChild(doc.createTextNode("" + blogEntry.isTrackBacksEnabled()));
    //#fileblogentrydao.java:200: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:200: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

      Iterator it = blogEntry.getCategories().iterator();
      Category category;
      while (it.hasNext()) {
        category = (Category) it.next();
        categoryNode = doc.createElement("category");
    //#fileblogentrydao.java:206: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
        categoryNode.appendChild(doc.createTextNode(category.getId()));
    //#fileblogentrydao.java:207: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:207: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        root.appendChild(categoryNode);
    //#fileblogentrydao.java:208: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      }

      if (blogEntry.getTags() != null) {
        root.appendChild(tagsNode);
    //#fileblogentrydao.java:212: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        tagsNode.appendChild(doc.createTextNode(blogEntry.getTags()));
    //#fileblogentrydao.java:213: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:213: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      }

      if (blogEntry.getAuthor() != null) {
        authorNode.appendChild(doc.createTextNode(blogEntry.getAuthor()));
    //#fileblogentrydao.java:217: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:217: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      }

      SimpleDateFormat sdf = new SimpleDateFormat(NEW_PERSISTENT_DATETIME_FORMAT, Locale.ENGLISH);
      sdf.setTimeZone(GMT);
      dateNode.appendChild(doc.createTextNode(sdf.format(blogEntry.getDate())));
    //#fileblogentrydao.java:222: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:222: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

      timeZoneNode.appendChild(doc.createTextNode(blogEntry.getTimeZoneId()));
    //#fileblogentrydao.java:224: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:224: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

      stateNode.appendChild(createTextNode(doc, blogEntry.getState().getName()));
    //#fileblogentrydao.java:226: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

      Attachment attachment = blogEntry.getAttachment();
      if (attachment != null) {
        root.appendChild(attachmentNode);
    //#fileblogentrydao.java:230: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        Element attachmentUrlNode = doc.createElement("url");
    //#fileblogentrydao.java:231: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
        attachmentUrlNode.appendChild(createTextNode(doc, attachment.getUrl()));
    //#fileblogentrydao.java:232: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        attachmentNode.appendChild(attachmentUrlNode);
    //#fileblogentrydao.java:233: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        Element attachmentSizeNode = doc.createElement("size");
    //#fileblogentrydao.java:234: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
        attachmentSizeNode.appendChild(createTextNode(doc, "" + attachment.getSize()));
    //#fileblogentrydao.java:235: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        attachmentNode.appendChild(attachmentSizeNode);
    //#fileblogentrydao.java:236: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        Element attachmentTypeNode = doc.createElement("type");
    //#fileblogentrydao.java:237: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
        attachmentTypeNode.appendChild(createTextNode(doc, attachment.getType()));
    //#fileblogentrydao.java:238: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
        attachmentNode.appendChild(attachmentTypeNode);
    //#fileblogentrydao.java:239: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      }

      // and now store the comments
      it = blogEntry.getComments().iterator();
      while (it.hasNext()) {
        Comment comment = (Comment) it.next();
        storeComment(comment, doc, root);
    //#fileblogentrydao.java:246: ?!precondition failure
    //#    net/sourceforge/pebble/dao/file/FileBlogEntryDAO.storeComment: (soft) comment...__Tag == net/sourceforge/pebble/domain/Comment
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    basic block: bb_27
    //#    assertion: (soft) undefined == 793_344
    //#    callee: void net/sourceforge/pebble/dao/file/FileBlogEntryDAO.storeComment(Comment, Document, Node)
    //#    callee assertion: (soft) comment...__Tag == net/sourceforge/pebble/domain/Comment
    //#    callee file: fileblogentrydao.java
    //#    callee precondition index: [2]
    //#    callee srcpos: 296
    //#    VN: undefined
    //#    Expected: {793_344}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Exp singleton  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp
    //#fileblogentrydao.java:246: ?!precondition failure
    //#    net/sourceforge/pebble/dao/file/FileBlogEntryDAO.storeComment: (soft) comment...date != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    basic block: bb_27
    //#    assertion: (soft) undefined != null
    //#    callee: void net/sourceforge/pebble/dao/file/FileBlogEntryDAO.storeComment(Comment, Document, Node)
    //#    callee assertion: (soft) comment...date != null
    //#    callee file: fileblogentrydao.java
    //#    callee precondition index: [3]
    //#    callee srcpos: 296
    //#    VN: undefined
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null, Invalid}
    //#    Attribs:  Ptr  null in Bad  Soft
      }

      // and finally the trackbacks
      it = blogEntry.getTrackBacks().iterator();
      while (it.hasNext()) {
        TrackBack trackBack = (TrackBack) it.next();
        storeTrackBack(trackBack, doc, root);
      }

      // write the XMl to a String, and then write this string to a file
      // (if the XML format fails, we don't corrupt the file)
      StringWriter sw = new StringWriter();
      Source source = new DOMSource(doc);
      Result result = new StreamResult(sw);
      Transformer xformer = TransformerFactory.newInstance().newTransformer();
      xformer.setOutputProperty(OutputKeys.METHOD, "xml");
      xformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
      xformer.setOutputProperty(OutputKeys.MEDIA_TYPE, "text/xml");
      xformer.setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "body");
      xformer.setOutputProperty(OutputKeys.INDENT, "yes");
      xformer.transform(source, result);

      // now take a backup of the correct file
      if (destination.exists() && destination.length() > 0) {
        log.debug("Backing up to " + backupFile.getAbsolutePath());
    //#fileblogentrydao.java:271: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
        destination.renameTo(backupFile);
      }

      log.debug("Saving to " + destination.getAbsolutePath());
    //#fileblogentrydao.java:275: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeBlogEntry(BlogEntry, File)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destination), "UTF-8"));
      bw.write(sw.getBuffer().toString());
      bw.flush();
      bw.close();
    } catch (Exception e) {
      log.error(e.getMessage(), e);
      e.printStackTrace();
      throw new PersistenceException(e.getMessage());
    }
  }
    //#fileblogentrydao.java:285: end of method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeBlogEntry(BlogEntry, File)

  /**
   * Helper method to store an individual comment.
   *
   * @param comment the Comment being stored
   * @param doc     the Document into which the comment is to be inserted
   * @param root    the root Node for the comment
   * @throws java.lang.Exception if something goes wrong
   */
  private void storeComment(Comment comment, Document doc, Node root) throws Exception {
    Element commentNode = doc.createElement("comment");
    //#fileblogentrydao.java:296: method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeComment(Comment, Document, Node)
    //#fileblogentrydao.java:296: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    //#input(void storeComment(Comment, Document, Node)): GMT
    //#input(void storeComment(Comment, Document, Node)): comment
    //#input(void storeComment(Comment, Document, Node)): comment...__Tag
    //#input(void storeComment(Comment, Document, Node)): comment...date
    //#input(void storeComment(Comment, Document, Node)): comment.__Tag
    //#input(void storeComment(Comment, Document, Node)): comment.authenticated
    //#input(void storeComment(Comment, Document, Node)): comment.author
    //#input(void storeComment(Comment, Document, Node)): comment.body
    //#input(void storeComment(Comment, Document, Node)): comment.date
    //#input(void storeComment(Comment, Document, Node)): comment.email
    //#input(void storeComment(Comment, Document, Node)): comment.ipAddress
    //#input(void storeComment(Comment, Document, Node)): comment.parent
    //#input(void storeComment(Comment, Document, Node)): comment.state
    //#input(void storeComment(Comment, Document, Node)): comment.state.__Tag
    //#input(void storeComment(Comment, Document, Node)): comment.state.name
    //#input(void storeComment(Comment, Document, Node)): comment.title
    //#input(void storeComment(Comment, Document, Node)): comment.website
    //#input(void storeComment(Comment, Document, Node)): doc
    //#input(void storeComment(Comment, Document, Node)): java.util.Locale.ENGLISH
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBody()Ljava/lang/String;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getEmail()Ljava/lang/String;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getIpAddress()Ljava/lang/String;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getWebsite()Ljava/lang/String;
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.isAuthenticated()Z
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void storeComment(Comment, Document, Node)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void storeComment(Comment, Document, Node)): root
    //#input(void storeComment(Comment, Document, Node)): this
    //#pre[1] (void storeComment(Comment, Document, Node)): comment != null
    //#pre[4] (void storeComment(Comment, Document, Node)): comment.__Tag == net/sourceforge/pebble/domain/Comment
    //#pre[5] (void storeComment(Comment, Document, Node)): init'ed(comment.authenticated)
    //#pre[6] (void storeComment(Comment, Document, Node)): init'ed(comment.author)
    //#pre[7] (void storeComment(Comment, Document, Node)): init'ed(comment.body)
    //#pre[8] (void storeComment(Comment, Document, Node)): init'ed(comment.date)
    //#pre[9] (void storeComment(Comment, Document, Node)): init'ed(comment.email)
    //#pre[10] (void storeComment(Comment, Document, Node)): init'ed(comment.ipAddress)
    //#pre[11] (void storeComment(Comment, Document, Node)): init'ed(comment.parent)
    //#pre[12] (void storeComment(Comment, Document, Node)): comment.state != null
    //#pre[13] (void storeComment(Comment, Document, Node)): comment.state.__Tag == net/sourceforge/pebble/domain/State
    //#pre[14] (void storeComment(Comment, Document, Node)): init'ed(comment.state.name)
    //#pre[15] (void storeComment(Comment, Document, Node)): init'ed(comment.title)
    //#pre[16] (void storeComment(Comment, Document, Node)): init'ed(comment.website)
    //#pre[17] (void storeComment(Comment, Document, Node)): doc != null
    //#pre[18] (void storeComment(Comment, Document, Node)): root != null
    //#pre[2] (void storeComment(Comment, Document, Node)): (soft) comment...__Tag == net/sourceforge/pebble/domain/Comment
    //#pre[3] (void storeComment(Comment, Document, Node)): (soft) comment...date != null
    //#presumption(void storeComment(Comment, Document, Node)): init'ed(java.util.Locale.ENGLISH)
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@296 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@299 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@300 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@301 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@302 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@303 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@304 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@305 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@306 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@307 != null
    //#presumption(void storeComment(Comment, Document, Node)): org.w3c.dom.Document:createElement(...)@308 != null
    //#unanalyzed(void storeComment(Comment, Document, Node)): Effects-of-calling:org.w3c.dom.Document:createTextNode
    //#unanalyzed(void storeComment(Comment, Document, Node)): Effects-of-calling:org.w3c.dom.Document:createCDATASection
    //#unanalyzed(void storeComment(Comment, Document, Node)): Effects-of-calling:java.util.Date:getTime
    //#test_vector(void storeComment(Comment, Document, Node)): comment.parent: Addr_Set{null}, Inverse{null}
    root.appendChild(commentNode);
    //#fileblogentrydao.java:297: Warning: method not available
    //#    -- call on Node org.w3c.dom.Node:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Node:appendChild(Node)

    Element titleNode = doc.createElement("title");
    //#fileblogentrydao.java:299: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element bodyNode = doc.createElement("body");
    //#fileblogentrydao.java:300: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element authorNode = doc.createElement("author");
    //#fileblogentrydao.java:301: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element emailNode = doc.createElement("email");
    //#fileblogentrydao.java:302: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element websiteNode = doc.createElement("website");
    //#fileblogentrydao.java:303: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element ipAddressNode = doc.createElement("ipAddress");
    //#fileblogentrydao.java:304: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element dateNode = doc.createElement("date");
    //#fileblogentrydao.java:305: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element parentNode = doc.createElement("parent");
    //#fileblogentrydao.java:306: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element stateNode = doc.createElement("state");
    //#fileblogentrydao.java:307: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element authenticatedNode = doc.createElement("authenticated");
    //#fileblogentrydao.java:308: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)

    commentNode.appendChild(titleNode);
    //#fileblogentrydao.java:310: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(bodyNode);
    //#fileblogentrydao.java:311: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(authorNode);
    //#fileblogentrydao.java:312: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(emailNode);
    //#fileblogentrydao.java:313: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(websiteNode);
    //#fileblogentrydao.java:314: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(ipAddressNode);
    //#fileblogentrydao.java:315: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(dateNode);
    //#fileblogentrydao.java:316: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(stateNode);
    //#fileblogentrydao.java:317: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(authenticatedNode);
    //#fileblogentrydao.java:318: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

    titleNode.appendChild(createTextNode(doc, comment.getTitle()));
    //#fileblogentrydao.java:320: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    bodyNode.appendChild(createCDATASection(doc, comment.getBody()));
    //#fileblogentrydao.java:321: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    authorNode.appendChild(createTextNode(doc, comment.getAuthor()));
    //#fileblogentrydao.java:322: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    emailNode.appendChild(createTextNode(doc, comment.getEmail()));
    //#fileblogentrydao.java:323: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    websiteNode.appendChild(createTextNode(doc, comment.getWebsite()));
    //#fileblogentrydao.java:324: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    ipAddressNode.appendChild(createTextNode(doc, comment.getIpAddress()));
    //#fileblogentrydao.java:325: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    SimpleDateFormat sdf = new SimpleDateFormat(NEW_PERSISTENT_DATETIME_FORMAT, Locale.ENGLISH);
    sdf.setTimeZone(GMT);
    dateNode.appendChild(createTextNode(doc, sdf.format(comment.getDate())));
    //#fileblogentrydao.java:328: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    stateNode.appendChild(createTextNode(doc, comment.getState().getName()));
    //#fileblogentrydao.java:329: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    authenticatedNode.appendChild(createTextNode(doc, "" + comment.isAuthenticated()));
    //#fileblogentrydao.java:330: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

    if (comment.getParent() != null) {
      commentNode.appendChild(parentNode);
    //#fileblogentrydao.java:333: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
      parentNode.appendChild(createTextNode(doc, "" + comment.getParent().getId()));
    //#fileblogentrydao.java:334: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeComment(Comment, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    }
  }
    //#fileblogentrydao.java:336: end of method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeComment(Comment, Document, Node)

  private Node createCDATASection(Document doc, String text) {
    if (text != null) {
    //#fileblogentrydao.java:339: method: Node net.sourceforge.pebble.dao.file.FileBlogEntryDAO.createCDATASection(Document, String)
    //#input(Node createCDATASection(Document, String)): doc
    //#input(Node createCDATASection(Document, String)): text
    //#output(Node createCDATASection(Document, String)): return_value
    //#pre[1] (Node createCDATASection(Document, String)): doc != null
    //#post(Node createCDATASection(Document, String)): init'ed(return_value)
    //#test_vector(Node createCDATASection(Document, String)): text: Addr_Set{null}, Inverse{null}
      return doc.createCDATASection(text);
    //#fileblogentrydao.java:340: Warning: method not available
    //#    -- call on CDATASection org.w3c.dom.Document:createCDATASection(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: Node createCDATASection(Document, String)
    //#    unanalyzed callee: CDATASection org.w3c.dom.Document:createCDATASection(String)
    } else {
      return doc.createCDATASection("");
    //#fileblogentrydao.java:342: Warning: method not available
    //#    -- call on CDATASection org.w3c.dom.Document:createCDATASection(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: Node createCDATASection(Document, String)
    //#    unanalyzed callee: CDATASection org.w3c.dom.Document:createCDATASection(String)
    //#fileblogentrydao.java:342: end of method: Node net.sourceforge.pebble.dao.file.FileBlogEntryDAO.createCDATASection(Document, String)
    }
  }

  private Node createTextNode(Document doc, String text) {
    if (text != null) {
    //#fileblogentrydao.java:347: method: Node net.sourceforge.pebble.dao.file.FileBlogEntryDAO.createTextNode(Document, String)
    //#input(Node createTextNode(Document, String)): doc
    //#input(Node createTextNode(Document, String)): text
    //#output(Node createTextNode(Document, String)): return_value
    //#pre[1] (Node createTextNode(Document, String)): doc != null
    //#post(Node createTextNode(Document, String)): init'ed(return_value)
    //#test_vector(Node createTextNode(Document, String)): text: Addr_Set{null}, Inverse{null}
      return doc.createTextNode(text);
    //#fileblogentrydao.java:348: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: Node createTextNode(Document, String)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    } else {
      return doc.createTextNode("");
    //#fileblogentrydao.java:350: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: Node createTextNode(Document, String)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:350: end of method: Node net.sourceforge.pebble.dao.file.FileBlogEntryDAO.createTextNode(Document, String)
    }
  }

  /**
   * Helper method to store an individual trackback.
   *
   * @param trackBack the TrackBack being stored
   * @param doc       the Document into which the trackback is to be inserted
   * @param root      the root Node for the comment
   * @throws java.lang.Exception if something goes wrong
   */
  private void storeTrackBack(TrackBack trackBack, Document doc, Node root) throws Exception {
    Element commentNode = doc.createElement("trackback");
    //#fileblogentrydao.java:363: method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeTrackBack(TrackBack, Document, Node)
    //#fileblogentrydao.java:363: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    //#input(void storeTrackBack(TrackBack, Document, Node)): GMT
    //#input(void storeTrackBack(TrackBack, Document, Node)): doc
    //#input(void storeTrackBack(TrackBack, Document, Node)): java.util.Locale.ENGLISH
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getExcerpt()Ljava/lang/String;
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getIpAddress()Ljava/lang/String;
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void storeTrackBack(TrackBack, Document, Node)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void storeTrackBack(TrackBack, Document, Node)): root
    //#input(void storeTrackBack(TrackBack, Document, Node)): this
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.__Tag
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.blogName
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.date
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.excerpt
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.ipAddress
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.state
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.state.__Tag
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.state.name
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.title
    //#input(void storeTrackBack(TrackBack, Document, Node)): trackBack.url
    //#pre[1] (void storeTrackBack(TrackBack, Document, Node)): doc != null
    //#pre[2] (void storeTrackBack(TrackBack, Document, Node)): root != null
    //#pre[4] (void storeTrackBack(TrackBack, Document, Node)): trackBack != null
    //#pre[5] (void storeTrackBack(TrackBack, Document, Node)): trackBack.__Tag == net/sourceforge/pebble/domain/TrackBack
    //#pre[6] (void storeTrackBack(TrackBack, Document, Node)): init'ed(trackBack.blogName)
    //#pre[7] (void storeTrackBack(TrackBack, Document, Node)): init'ed(trackBack.date)
    //#pre[8] (void storeTrackBack(TrackBack, Document, Node)): init'ed(trackBack.excerpt)
    //#pre[9] (void storeTrackBack(TrackBack, Document, Node)): init'ed(trackBack.ipAddress)
    //#pre[10] (void storeTrackBack(TrackBack, Document, Node)): trackBack.state != null
    //#pre[11] (void storeTrackBack(TrackBack, Document, Node)): trackBack.state.__Tag == net/sourceforge/pebble/domain/State
    //#pre[12] (void storeTrackBack(TrackBack, Document, Node)): init'ed(trackBack.state.name)
    //#pre[13] (void storeTrackBack(TrackBack, Document, Node)): init'ed(trackBack.title)
    //#pre[14] (void storeTrackBack(TrackBack, Document, Node)): (soft) init'ed(trackBack.url)
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): init'ed(java.util.Locale.ENGLISH)
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@363 != null
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@366 != null
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@367 != null
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@368 != null
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@369 != null
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@370 != null
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@371 != null
    //#presumption(void storeTrackBack(TrackBack, Document, Node)): org.w3c.dom.Document:createElement(...)@372 != null
    //#unanalyzed(void storeTrackBack(TrackBack, Document, Node)): Effects-of-calling:org.w3c.dom.Document:createTextNode
    //#unanalyzed(void storeTrackBack(TrackBack, Document, Node)): Effects-of-calling:org.w3c.dom.Document:createCDATASection
    //#unanalyzed(void storeTrackBack(TrackBack, Document, Node)): Effects-of-calling:java.lang.String:length
    root.appendChild(commentNode);
    //#fileblogentrydao.java:364: Warning: method not available
    //#    -- call on Node org.w3c.dom.Node:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Node:appendChild(Node)

    Element titleNode = doc.createElement("title");
    //#fileblogentrydao.java:366: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element excerptNode = doc.createElement("excerpt");
    //#fileblogentrydao.java:367: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element urlNode = doc.createElement("url");
    //#fileblogentrydao.java:368: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element blogNameNode = doc.createElement("blogName");
    //#fileblogentrydao.java:369: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element ipAddressNode = doc.createElement("ipAddress");
    //#fileblogentrydao.java:370: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element dateNode = doc.createElement("date");
    //#fileblogentrydao.java:371: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)
    Element stateNode = doc.createElement("state");
    //#fileblogentrydao.java:372: Warning: method not available
    //#    -- call on Element org.w3c.dom.Document:createElement(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Element org.w3c.dom.Document:createElement(String)

    commentNode.appendChild(titleNode);
    //#fileblogentrydao.java:374: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(excerptNode);
    //#fileblogentrydao.java:375: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(urlNode);
    //#fileblogentrydao.java:376: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(blogNameNode);
    //#fileblogentrydao.java:377: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(ipAddressNode);
    //#fileblogentrydao.java:378: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(dateNode);
    //#fileblogentrydao.java:379: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    commentNode.appendChild(stateNode);
    //#fileblogentrydao.java:380: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)

    titleNode.appendChild(createTextNode(doc, trackBack.getTitle()));
    //#fileblogentrydao.java:382: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    excerptNode.appendChild(createCDATASection(doc, trackBack.getExcerpt()));
    //#fileblogentrydao.java:383: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    urlNode.appendChild(createTextNode(doc, trackBack.getUrl()));
    //#fileblogentrydao.java:384: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    blogNameNode.appendChild(createTextNode(doc, trackBack.getBlogName()));
    //#fileblogentrydao.java:385: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    ipAddressNode.appendChild(createTextNode(doc, trackBack.getIpAddress()));
    //#fileblogentrydao.java:386: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    SimpleDateFormat sdf = new SimpleDateFormat(NEW_PERSISTENT_DATETIME_FORMAT, Locale.ENGLISH);
    sdf.setTimeZone(GMT);
    dateNode.appendChild(doc.createTextNode(sdf.format(trackBack.getDate())));
    //#fileblogentrydao.java:389: Warning: method not available
    //#    -- call on Text org.w3c.dom.Document:createTextNode(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Text org.w3c.dom.Document:createTextNode(String)
    //#fileblogentrydao.java:389: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
    stateNode.appendChild(createTextNode(doc, trackBack.getState().getName()));
    //#fileblogentrydao.java:390: Warning: method not available
    //#    -- call on Node org.w3c.dom.Element:appendChild(Node)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void storeTrackBack(TrackBack, Document, Node)
    //#    unanalyzed callee: Node org.w3c.dom.Element:appendChild(Node)
  }
    //#fileblogentrydao.java:391: end of method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.storeTrackBack(TrackBack, Document, Node)

  /**
   * Removes the specified blog entry.
   *
   * @param blogEntry the blog entry to remove
   * @throws PersistenceException if something goes wrong removing the entry
   */
  public void removeBlogEntry(BlogEntry blogEntry) throws PersistenceException {
    File path = new File(getPath(blogEntry.getBlog(), blogEntry.getId(), GMT));
    //#fileblogentrydao.java:400: method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.removeBlogEntry(BlogEntry)
    //#input(void removeBlogEntry(BlogEntry)): GMT
    //#input(void removeBlogEntry(BlogEntry)): __Descendant_Table[net/sourceforge/pebble/dao/file/FileBlogEntryDAO]
    //#input(void removeBlogEntry(BlogEntry)): __Descendant_Table[others]
    //#input(void removeBlogEntry(BlogEntry)): __Dispatch_Table.getPath(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;Ljava/util/TimeZone;)Ljava/lang/String;
    //#input(void removeBlogEntry(BlogEntry)): blogEntry
    //#input(void removeBlogEntry(BlogEntry)): blogEntry.__Tag
    //#input(void removeBlogEntry(BlogEntry)): blogEntry.blog
    //#input(void removeBlogEntry(BlogEntry)): blogEntry.blog.__Tag
    //#input(void removeBlogEntry(BlogEntry)): blogEntry.blog.id
    //#input(void removeBlogEntry(BlogEntry)): blogEntry.id
    //#input(void removeBlogEntry(BlogEntry)): log
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void removeBlogEntry(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void removeBlogEntry(BlogEntry)): this
    //#input(void removeBlogEntry(BlogEntry)): this.__Tag
    //#pre[1] (void removeBlogEntry(BlogEntry)): blogEntry != null
    //#pre[2] (void removeBlogEntry(BlogEntry)): blogEntry.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#pre[3] (void removeBlogEntry(BlogEntry)): blogEntry.blog != null
    //#pre[4] (void removeBlogEntry(BlogEntry)): blogEntry.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[5] (void removeBlogEntry(BlogEntry)): init'ed(blogEntry.blog.id)
    //#pre[6] (void removeBlogEntry(BlogEntry)): init'ed(blogEntry.id)
    //#pre[7] (void removeBlogEntry(BlogEntry)): log != null
    //#pre[9] (void removeBlogEntry(BlogEntry)): this.__Tag == net/sourceforge/pebble/dao/file/FileBlogEntryDAO
    //#presumption(void removeBlogEntry(BlogEntry)): java.io.File:delete(...)@404 == 1
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.Exception
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getRoot
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.text.DateFormat:setTimeZone
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.Long:parseLong
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.util.Date
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.text.DateFormat:format
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void removeBlogEntry(BlogEntry)): Effects-of-calling:getId
    File file = new File(path, blogEntry.getId() + ".xml");
    log.debug("Removing " + blogEntry.getGuid());
    //#fileblogentrydao.java:402: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: void removeBlogEntry(BlogEntry)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)

    boolean success = file.delete();
    if (!success) {
      throw new PersistenceException("Deletion of blog entry " + blogEntry.getGuid() + " failed");
    }
  }
    //#fileblogentrydao.java:408: end of method: void net.sourceforge.pebble.dao.file.FileBlogEntryDAO.removeBlogEntry(BlogEntry)

  /**
   * Given a blog and blog entry ID, this method determines the path where
   * that blog entry is stored.
   *
   * @param blog    the owning Blog
   * @param blogEntryId   the ID of the blog entry
   * @return  a String of the form blogroot/yyyy/MM/dd
   */
  public String getPath(Blog blog, String blogEntryId, TimeZone timeZone) {
    DateFormat year = new SimpleDateFormat("yyyy");
    //#fileblogentrydao.java:419: method: String net.sourceforge.pebble.dao.file.FileBlogEntryDAO.getPath(Blog, String, TimeZone)
    //#input(String getPath(Blog, String, TimeZone)): blog
    //#input(String getPath(Blog, String, TimeZone)): blogEntryId
    //#input(String getPath(Blog, String, TimeZone)): java.io.File.separator
    //#input(String getPath(Blog, String, TimeZone)): timeZone
    //#output(String getPath(Blog, String, TimeZone)): return_value
    //#pre[1] (String getPath(Blog, String, TimeZone)): blog != null
    //#presumption(String getPath(Blog, String, TimeZone)): init'ed(java.io.File.separator)
    //#post(String getPath(Blog, String, TimeZone)): return_value != null
    year.setTimeZone(timeZone);
    DateFormat month = new SimpleDateFormat("MM");
    month.setTimeZone(timeZone);
    DateFormat day = new SimpleDateFormat("dd");
    day.setTimeZone(timeZone);

    long dateInMillis = Long.parseLong(blogEntryId);
    Date date = new Date(dateInMillis);

    StringBuffer buf = new StringBuffer();
    buf.append(blog.getRoot());
    //#fileblogentrydao.java:430: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.domain.Blog:getRoot()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
    //#    method: String getPath(Blog, String, TimeZone)
    //#    unanalyzed callee: String net.sourceforge.pebble.domain.Blog:getRoot()
    buf.append(File.separator);
    buf.append(year.format(date));
    buf.append(File.separator);
    buf.append(month.format(date));
    buf.append(File.separator);
    buf.append(day.format(date));

    return buf.toString();
    //#fileblogentrydao.java:438: end of method: String net.sourceforge.pebble.dao.file.FileBlogEntryDAO.getPath(Blog, String, TimeZone)
  }

}    //#fileblogentrydao.java:: end of class: net.sourceforge.pebble.dao.file.FileBlogEntryDAO
