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 2010/09/27 14:38:06 UTC
svn commit: r1001707 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
Author: jukka
Date: Mon Sep 27 12:38:06 2010
New Revision: 1001707
URL: http://svn.apache.org/viewvc?rev=1001707&view=rev
Log:
JCR-2699: Improve read/write concurrency
Avoid an extra hasNonVirtualItemState() call in SISM.getItemState()
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java?rev=1001707&r1=1001706&r2=1001707&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java Mon Sep 27 12:38:06 2010
@@ -257,9 +257,12 @@ public class SharedItemStateManager
ISMLocking.ReadLock readLock = acquireReadLock(id);
try {
// check internal first
- if (hasNonVirtualItemState(id)) {
- return getNonVirtualItemState(id);
- }
+ return getNonVirtualItemState(id);
+ } catch (NoSuchItemStateException e) {
+ // Fall through to virtual state providers. We can afford the
+ // exception-for-control-flow performance hit here, as almost
+ // all performance-critical content is non-virtual. With this
+ // catch we can avoid an extra hasNonVirtualItemState() call.
} finally {
readLock.release();
}