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 2009/02/16 14:48:32 UTC

svn commit: r744916 - in /jackrabbit/branches/1.5: ./ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Author: jukka
Date: Mon Feb 16 13:48:24 2009
New Revision: 744916

URL: http://svn.apache.org/viewvc?rev=744916&view=rev
Log:
1.5: Merged revisions 744895 and 744911 (JCR-1979). Ignored other revisions.

Modified:
    jackrabbit/branches/1.5/   (props changed)
    jackrabbit/branches/1.5/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Propchange: jackrabbit/branches/1.5/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 16 13:48:24 2009
@@ -1,2 +1,2 @@
 /jackrabbit/branches/1.3:631261
-/jackrabbit/trunk:703899-704158,704165,704167,704324,704358,704361,704864,704933,704939,705010,705033,705243,705496,705522,705579,705925,705932,705934,705937-705938,705961,706242,706273,706285-706286,706562,706606,706649,706655,706660,706697,706918,707303-707304,707307,707310,707630,708206,708598,708609,708613,708619,708634,708840,708863,708909,708929,708943,709115,709142,709207,709211,710047,711238,711566-711567,711595,711841-711843,712984-712985,713037,713059,713065,713072,713076,713162,713214,713956,713958,713964,713971,713975,714034,718218,718249-718250,718371,718376,718566,718632,718981,719225,719282,719575-719577,719579,719585-719586,719588,719592,720455,720484,720492,720524,720533,720540,720673,720679,720687,720784,720940,720969,721186,721191,721194,721235,721387-721389,721470,721495,722068-722069,722463,722465,722467,722470,722825,723281,723346,723728,723784,724300,724387,725292,727376,727388,727390,727395,727397,727402,727492,727701,728022,731896,731934,731941,73234
 7,732678,732686,732689,732693,732703,732715-732716,732719,732728,732730,732734-732738,732740,732742-732743,732745,732867,732883,733057-733059,733061,733080,734092,734366,734375,734400,734709,735401,736021,736030,736274,736276,736650-736651,736653-736656,736658,736680,737695,738087,738119,738121,738419,738422,738474,738512,739210,739212,739226,740262,740734,740736-740738,740747,740749-740750,741052,741100,741121,741206,741208-741210,741213,741509,741524,741652,741803,742382,742538,743295
+/jackrabbit/trunk:703899-704158,704165,704167,704324,704358,704361,704864,704933,704939,705010,705033,705243,705496,705522,705579,705925,705932,705934,705937-705938,705961,706242,706273,706285-706286,706562,706606,706649,706655,706660,706697,706918,707303-707304,707307,707310,707630,708206,708598,708609,708613,708619,708634,708840,708863,708909,708929,708943,709115,709142,709207,709211,710047,711238,711566-711567,711595,711841-711843,712984-712985,713037,713059,713065,713072,713076,713162,713214,713956,713958,713964,713971,713975,714034,718218,718249-718250,718371,718376,718566,718632,718981,719225,719282,719575-719577,719579,719585-719586,719588,719592,720455,720484,720492,720524,720533,720540,720673,720679,720687,720784,720940,720969,721186,721191,721194,721235,721387-721389,721470,721495,722068-722069,722463,722465,722467,722470,722825,723281,723346,723728,723784,724300,724387,725292,727376,727388,727390,727395,727397,727402,727492,727701,728022,731896,731934,731941,73234
 7,732678,732686,732689,732693,732703,732715-732716,732719,732728,732730,732734-732738,732740,732742-732743,732745,732867,732883,733057-733059,733061,733080,734092,734366,734375,734400,734709,735401,736021,736030,736274,736276,736650-736651,736653-736656,736658,736680,737695,738087,738119,738121,738419,738422,738474,738512,739210,739212,739226,740262,740734,740736-740738,740747,740749-740750,741052,741100,741121,741206,741208-741210,741213,741509,741524,741652,741803,742382,742538,743295,743713,743718,743726,743734,743738,744883-744884,744889,744895,744911

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=744916&r1=744915&r2=744916&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 Mon Feb 16 13:48:24 2009
@@ -243,29 +243,30 @@
      */
     public ItemState getItemState(ItemId id)
             throws NoSuchItemStateException, ItemStateException {
+        // check the virtual root ids (needed for overlay)
+        for (int i = 0; i < virtualProviders.length; i++) {
+            if (virtualProviders[i].isVirtualRoot(id)) {
+                return virtualProviders[i].getItemState(id);
+            }
+        }
 
         ISMLocking.ReadLock readLock = acquireReadLock(id);
-
         try {
-            // check the virtual root ids (needed for overlay)
-            for (int i = 0; i < virtualProviders.length; i++) {
-                if (virtualProviders[i].isVirtualRoot(id)) {
-                    return virtualProviders[i].getItemState(id);
-                }
-            }
             // check internal first
             if (hasNonVirtualItemState(id)) {
                 return getNonVirtualItemState(id);
             }
-            // check if there is a virtual state for the specified item
-            for (int i = 0; i < virtualProviders.length; i++) {
-                if (virtualProviders[i].hasItemState(id)) {
-                    return virtualProviders[i].getItemState(id);
-                }
-            }
         } finally {
             readLock.release();
         }
+
+        // check if there is a virtual state for the specified item
+        for (int i = 0; i < virtualProviders.length; i++) {
+            if (virtualProviders[i].hasItemState(id)) {
+                return virtualProviders[i].getItemState(id);
+            }
+        }
+
         throw new NoSuchItemStateException(id.toString());
     }
 
@@ -273,6 +274,12 @@
      * {@inheritDoc}
      */
     public boolean hasItemState(ItemId id) {
+        // check the virtual root ids (needed for overlay)
+        for (int i = 0; i < virtualProviders.length; i++) {
+            if (virtualProviders[i].isVirtualRoot(id)) {
+                return true;
+            }
+        }
 
         ISMLocking.ReadLock readLock;
         try {
@@ -286,25 +293,21 @@
                 return true;
             }
 
-            // check the virtual root ids (needed for overlay)
-            for (int i = 0; i < virtualProviders.length; i++) {
-                if (virtualProviders[i].isVirtualRoot(id)) {
-                    return true;
-                }
-            }
             // check if this manager has the item state
             if (hasNonVirtualItemState(id)) {
                 return true;
             }
-            // otherwise check virtual ones
-            for (int i = 0; i < virtualProviders.length; i++) {
-                if (virtualProviders[i].hasItemState(id)) {
-                    return true;
-                }
-            }
         } finally {
             readLock.release();
         }
+
+        // otherwise check virtual ones
+        for (int i = 0; i < virtualProviders.length; i++) {
+            if (virtualProviders[i].hasItemState(id)) {
+                return true;
+            }
+        }
+
         return false;
     }
 
@@ -313,9 +316,7 @@
      */
     public NodeReferences getNodeReferences(NodeReferencesId id)
             throws NoSuchItemStateException, ItemStateException {
-
         ISMLocking.ReadLock readLock = acquireReadLock(id.getTargetId());
-
         try {
             // check persistence manager
             try {
@@ -323,18 +324,19 @@
             } catch (NoSuchItemStateException e) {
                 // ignore
             }
-            // check virtual providers
-            for (int i = 0; i < virtualProviders.length; i++) {
-                try {
-                    return virtualProviders[i].getNodeReferences(id);
-                } catch (NoSuchItemStateException e) {
-                    // ignore
-                }
-            }
         } finally {
             readLock.release();
         }
 
+        // check virtual providers
+        for (int i = 0; i < virtualProviders.length; i++) {
+            try {
+                return virtualProviders[i].getNodeReferences(id);
+            } catch (NoSuchItemStateException e) {
+                // ignore
+            }
+        }
+
         // throw
         throw new NoSuchItemStateException(id.toString());
     }
@@ -343,14 +345,12 @@
      * {@inheritDoc}
      */
     public boolean hasNodeReferences(NodeReferencesId id) {
-
         ISMLocking.ReadLock readLock;
         try {
             readLock = acquireReadLock(id.getTargetId());
         } catch (ItemStateException e) {
             return false;
         }
-
         try {
             // check persistence manager
             try {
@@ -360,15 +360,17 @@
             } catch (ItemStateException e) {
                 // ignore
             }
-            // check virtual providers
-            for (int i = 0; i < virtualProviders.length; i++) {
-                if (virtualProviders[i].hasNodeReferences(id)) {
-                    return true;
-                }
-            }
         } finally {
             readLock.release();
         }
+
+        // check virtual providers
+        for (int i = 0; i < virtualProviders.length; i++) {
+            if (virtualProviders[i].hasNodeReferences(id)) {
+                return true;
+            }
+        }
+
         return false;
     }