You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2006/11/23 20:04:36 UTC
svn commit: r478641 - in
/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version:
InternalVersionImpl.java VersionManagerImpl.java XAVersionManager.java
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);
}
/**