Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 69986 invoked from network); 5 Mar 2009 18:30:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Mar 2009 18:30:43 -0000 Received: (qmail 58487 invoked by uid 500); 5 Mar 2009 18:30:43 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 58459 invoked by uid 500); 5 Mar 2009 18:30:43 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 58450 invoked by uid 99); 5 Mar 2009 18:30:43 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Mar 2009 10:30:43 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Mar 2009 18:30:42 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id AE93C23888F4; Thu, 5 Mar 2009 18:30:22 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r750539 - in /jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core: state/SharedItemStateManager.java version/VersionItemStateManager.java Date: Thu, 05 Mar 2009 18:30:22 -0000 To: commits@jackrabbit.apache.org From: jukka@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090305183022.AE93C23888F4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jukka Date: Thu Mar 5 18:30:21 2009 New Revision: 750539 URL: http://svn.apache.org/viewvc?rev=750539&view=rev Log: 1.5: Merged revision 750536 (JCR-2000) Modified: jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java Modified: jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java?rev=750539&r1=750538&r2=750539&view=diff ============================================================================== --- jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (original) +++ jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java Thu Mar 5 18:30:21 2009 @@ -1327,7 +1327,7 @@ * Checks if this item state manager has the given item state without * considering the virtual item state managers. */ - private boolean hasNonVirtualItemState(ItemId id) { + protected boolean hasNonVirtualItemState(ItemId id) { if (cache.isCached(id)) { return true; } Modified: jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java?rev=750539&r1=750538&r2=750539&view=diff ============================================================================== --- jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java (original) +++ jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java Thu Mar 5 18:30:21 2009 @@ -28,7 +28,9 @@ import org.apache.jackrabbit.core.state.ISMLocking; import org.apache.jackrabbit.core.state.ItemStateCacheFactory; import org.apache.jackrabbit.core.state.ItemStateException; +import org.apache.jackrabbit.core.state.NoSuchItemStateException; import org.apache.jackrabbit.core.state.NodeReferences; +import org.apache.jackrabbit.core.state.NodeReferencesId; import org.apache.jackrabbit.core.state.SharedItemStateManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,6 +61,30 @@ this.pMgr = persistMgr; } + public NodeReferences getNodeReferences(NodeReferencesId id) + throws NoSuchItemStateException, ItemStateException { + // check persistence manager + try { + return pMgr.load(id); + } catch (NoSuchItemStateException e) { + // ignore + } + // throw + throw new NoSuchItemStateException(id.toString()); + } + + public boolean hasNodeReferences(NodeReferencesId id) { + // check persistence manager + try { + if (pMgr.exists(id)) { + return true; + } + } catch (ItemStateException e) { + // ignore + } + return false; + } + /** * Sets the * @param references @@ -76,7 +102,7 @@ Iterator iter = source.getReferences().iterator(); while (iter.hasNext()) { PropertyId id = (PropertyId) iter.next(); - if (!hasItemState(id.getParentId())) { + if (!hasNonVirtualItemState(id.getParentId())) { target.addReference(id); } } @@ -103,7 +129,7 @@ NodeId id = refs.getTargetId(); // no need to check existence of target if there are no references if (refs.hasReferences()) { - if (!changes.has(id) && !hasItemState(id)) { + if (!changes.has(id) && !hasNonVirtualItemState(id)) { // remove references iter.remove(); }