Author: skabashnyuk
Date: 2009-12-16 09:15:14 -0500 (Wed, 16 Dec 2009)
New Revision: 1097
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
Log:
EXOJCR-199: Nicolas suggestion applied in getItemData(String uuid) method. Direct cache
access
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2009-12-16
14:13:03 UTC (rev 1096)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2009-12-16
14:15:14 UTC (rev 1097)
@@ -1423,7 +1423,17 @@
if (!isModified(item) && itemsPool.contains(item.getIdentifier()))
{
// if not modified but was pooled, load data from persistent storage
- ItemData persisted = transactionableManager.getItemData(item.getIdentifier());
+ ItemData persisted = null;
+ if (item.isNode())
+ {
+ persisted = transactionableManager.getItemData(item.getIdentifier());
+ }
+ else
+ {
+ NodeData parent =
(NodeData)transactionableManager.getItemData(item.getParentIdentifier());
+ if (parent != null)
+ persisted = transactionableManager.getItemData(parent,
(QPathEntry)item.getQPath().getName());
+ }
if (persisted == null)
{
// ...try by path
@@ -1443,7 +1453,20 @@
// the childs is acquired in the session.
for (ItemImpl pooled : itemsPool.getDescendats(persisted.getQPath()))
{
- persisted =
transactionableManager.getItemData(pooled.getInternalIdentifier());
+
+ if (pooled.isNode())
+ {
+ persisted =
transactionableManager.getItemData(pooled.getData().getIdentifier());
+ }
+ else
+ {
+ NodeData parent =
+
(NodeData)transactionableManager.getItemData(pooled.getData().getParentIdentifier());
+ if (parent != null)
+ persisted =
+ transactionableManager.getItemData(parent,
(QPathEntry)pooled.getData().getQPath().getName());
+ }
+
if (persisted == null)
{
// ...try by path
Show replies by date