Return-Path: Delivered-To: apmail-roller-commits-archive@www.apache.org Received: (qmail 29295 invoked from network); 10 Sep 2007 21:24:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Sep 2007 21:24:49 -0000 Received: (qmail 87239 invoked by uid 500); 10 Sep 2007 21:24:42 -0000 Delivered-To: apmail-roller-commits-archive@roller.apache.org Received: (qmail 87211 invoked by uid 500); 10 Sep 2007 21:24:42 -0000 Mailing-List: contact commits-help@roller.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@roller.apache.org Delivered-To: mailing list commits@roller.apache.org Received: (qmail 87201 invoked by uid 99); 10 Sep 2007 21:24:42 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Sep 2007 14:24:42 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Sep 2007 21:26:19 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1E69D1A9832; Mon, 10 Sep 2007 14:24:26 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r574378 - /roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java Date: Mon, 10 Sep 2007 21:24:25 -0000 To: commits@roller.apache.org From: snoopdave@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20070910212426.1E69D1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: snoopdave Date: Mon Sep 10 14:24:24 2007 New Revision: 574378 URL: http://svn.apache.org/viewvc?rev=574378&view=rev Log: Working around apparent OpenJPA bug in delete of entry with referrers. Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java?rev=574378&r1=574377&r2=574378&view=diff ============================================================================== --- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java (original) +++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java Mon Sep 10 14:24:24 2007 @@ -30,6 +30,7 @@ import java.text.SimpleDateFormat; import java.util.TreeMap; import java.sql.Timestamp; +import javax.persistence.FlushModeType; import javax.persistence.NoResultException; import javax.persistence.Query; @@ -334,14 +335,20 @@ */ public void removeWeblogEntry(WeblogEntry entry) throws WebloggerException { + + String entryAnchor = entry.getAnchor(); + Weblog website = entry.getWebsite(); + Query q = strategy.getNamedQuery("WeblogReferrer.getByWeblogEntry"); q.setParameter(1, entry); List referers = q.getResultList(); for (Iterator iter = referers.iterator(); iter.hasNext();) { WeblogReferrer referer = (WeblogReferrer) iter.next(); - this.strategy.remove(referer); + this.strategy.remove(referer.getClass(), referer.getId()); } - + // TODO: can we eliminate this unnecessary flush with OpenJPA 1.0 + this.strategy.flush(); + // remove comments List comments = getComments( null, // website @@ -359,8 +366,8 @@ } // remove tags aggregates - if(entry.getTags() != null) { - for(Iterator it = entry.getTags().iterator(); it.hasNext(); ) { + if (entry.getTags() != null) { + for (Iterator it = entry.getTags().iterator(); it.hasNext(); ) { WeblogEntryTag tag = (WeblogEntryTag) it.next(); updateTagCount(tag.getName(), entry.getWebsite(), -1); it.remove(); @@ -372,13 +379,12 @@ this.strategy.remove(entry); // update weblog last modified date. date updated by saveWebsite() - if(entry.isPublished()) { - roller.getUserManager() - .saveWebsite(entry.getWebsite()); + if (entry.isPublished()) { + roller.getUserManager().saveWebsite(website); } // remove entry from cache mapping - this.entryAnchorToIdMap.remove(entry.getWebsite().getHandle()+":"+entry.getAnchor()); + this.entryAnchorToIdMap.remove(website.getHandle() + ":" + entryAnchor); } public List getNextPrevEntries(WeblogEntry current, String catName,