[exo-jcr-commits] exo-jcr SVN: r4392 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu May 19 02:03:47 EDT 2011


Author: areshetnyak
Date: 2011-05-19 02:03:47 -0400 (Thu, 19 May 2011)
New Revision: 4392

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
Log:
EXOJCR-1343 : The patch for avoid data accesses in case of new created nodes was checked and committed.

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2011-05-18 15:17:22 UTC (rev 4391)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2011-05-19 06:03:47 UTC (rev 4392)
@@ -966,7 +966,7 @@
    public int getLastOrderNumber(NodeData parent) throws RepositoryException
    {
       int lastOrderNumber = changesLog.getLastChildOrderNumber(parent.getIdentifier());
-      int lastPersistedNodeOrderNumber = transactionableManager.getLastOrderNumber(parent);
+      int lastPersistedNodeOrderNumber = isNew(parent.getIdentifier()) ? -1 : transactionableManager.getLastOrderNumber(parent);
 
       return Math.max(lastPersistedNodeOrderNumber, lastOrderNumber);
    }
@@ -977,7 +977,7 @@
    public int getChildNodesCount(NodeData parent) throws RepositoryException
    {
       int childsCount =
-         changesLog.getChildNodesCount(parent.getIdentifier()) + transactionableManager.getChildNodesCount(parent);
+         changesLog.getChildNodesCount(parent.getIdentifier()) + (isNew(parent.getIdentifier()) ? 0 : transactionableManager.getChildNodesCount(parent));
       if (childsCount < 0)
       {
          throw new InvalidItemStateException("Node's child nodes were changed in another Session "
@@ -1992,6 +1992,10 @@
       }
       else
       {
+         if (isNew(rootData.getIdentifier()))
+         {
+            return Collections.emptyList();
+         }
          return dataManager.getChildNodesData((NodeData)rootData);
       }
    }
@@ -2121,7 +2125,7 @@
       throws RepositoryException
    {
 
-      if (parent.isNode())
+      if (parent.isNode() && !isNew(parent.getIdentifier()))
       {
          if (action != MERGE_PROPS)
          {



More information about the exo-jcr-commits mailing list