Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 88275 invoked from network); 23 Nov 2006 19:05:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 23 Nov 2006 19:05:12 -0000 Received: (qmail 39181 invoked by uid 500); 23 Nov 2006 19:05:21 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 39097 invoked by uid 500); 23 Nov 2006 19:05:21 -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 39083 invoked by uid 99); 23 Nov 2006 19:05:21 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Nov 2006 11:05:21 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME 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; Thu, 23 Nov 2006 11:05:11 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 418AB1A9846; Thu, 23 Nov 2006 11:04:36 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r478641 - in /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version: InternalVersionImpl.java VersionManagerImpl.java XAVersionManager.java Date: Thu, 23 Nov 2006 19:04:36 -0000 To: commits@jackrabbit.apache.org From: jukka@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061123190436.418AB1A9846@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jukka Date: Thu Nov 23 11:04:35 2006 New Revision: 478641 URL: http://svn.apache.org/viewvc?view=rev&rev=478641 Log: JCR-546: Consistently use the try-finally pattern for acquiring locks Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java?view=diff&rev=478641&r1=478640&r2=478641 ============================================================================== --- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java (original) +++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java Thu Nov 23 11:04:35 2006 @@ -129,8 +129,8 @@ * {@inheritDoc} */ public InternalVersion[] getSuccessors() { + vMgr.acquireReadLock(); try { - vMgr.acquireReadLock(); InternalValue[] values = node.getPropertyValues(QName.JCR_SUCCESSORS); if (values != null) { InternalVersion[] versions = new InternalVersion[values.length]; Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java?view=diff&rev=478641&r1=478640&r2=478641 ============================================================================== --- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java (original) +++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java Thu Nov 23 11:04:35 2006 @@ -239,8 +239,8 @@ if (id.equals(getHistoryRootId())) { return null; } + acquireReadLock(); try { - acquireReadLock(); synchronized (versionItems) { InternalVersionItem item = (InternalVersionItem) versionItems.get(id); if (item == null) { @@ -397,8 +397,11 @@ protected void itemDiscarded(InternalVersionItem item) { // evict removed item from cache acquireReadLock(); - versionItems.remove(item.getId()); - releaseReadLock(); + try { + versionItems.remove(item.getId()); + } finally { + releaseReadLock(); + } } /** @@ -440,11 +443,10 @@ NodeReferences refs = pMgr.load(new NodeReferencesId(item.getId())); return refs.getReferences(); } catch (ItemStateException e) { - // ignore + return Collections.EMPTY_LIST; } finally { releaseReadLock(); } - return Collections.EMPTY_LIST; } /** @@ -485,8 +487,11 @@ public void stateDestroyed(ItemState destroyed) { // evict removed item from cache acquireReadLock(); - versionItems.remove(destroyed.getId()); - releaseReadLock(); + try { + versionItems.remove(destroyed.getId()); + } finally { + releaseReadLock(); + } } /** Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java?view=diff&rev=478641&r1=478640&r2=478641 ============================================================================== --- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java (original) +++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/XAVersionManager.java Thu Nov 23 11:04:35 2006 @@ -524,18 +524,16 @@ */ private InternalVersionHistoryImpl makeLocalCopy(InternalVersionHistoryImpl history) throws RepositoryException { - - NodeState state; acquireReadLock(); try { - state = (NodeState) stateMgr.getItemState(history.getId()); + NodeState state = (NodeState) stateMgr.getItemState(history.getId()); + NodeStateEx stateEx = new NodeStateEx(stateMgr, ntReg, state, null); + return new InternalVersionHistoryImpl(this, stateEx); } catch (ItemStateException e) { throw new RepositoryException("Unable to make local copy", e); } finally { releaseReadLock(); } - NodeStateEx stateEx = new NodeStateEx(stateMgr, ntReg, state, null); - return new InternalVersionHistoryImpl(this, stateEx); } /**