Author: nfilotto
Date: 2010-09-16 14:43:44 -0400 (Thu, 16 Sep 2010)
New Revision: 3127
Modified:
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java
Log:
EXOJCR-830: The put method needs to return non null value in some specific cases
Modified:
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java
===================================================================
---
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java 2010-09-16
15:35:06 UTC (rev 3126)
+++
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java 2010-09-16
18:43:44 UTC (rev 3127)
@@ -722,13 +722,29 @@
*/
public Object put(CacheKey key, Object value)
{
+ return put(key, value, false);
+ }
+
+ /**
+ * Put object in cache.
+ * @param key
+ * cache key
+ * @param value
+ * cache value
+ * @param withReturnValue
+ * indicates if a return value is expected
+ * @return <code>null</code> if <code>withReturnValue</code>
has been set to <code>false</code>
+ * the previous value otherwise
+ */
+ public Object put(CacheKey key, Object value, boolean withReturnValue)
+ {
CompressedISPNChangesBuffer changesContainer = getChangesBufferSafe();
changesContainer.add(new PutObjectContainer(key, value, parentCache,
changesContainer.getHistoryIndex(), local
.get(), allowLocalChanges));
- return null;
+ return withReturnValue ? parentCache.get(key) : null;
}
-
+
/**
* {@inheritDoc}
*/
Modified:
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java
===================================================================
---
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java 2010-09-16
15:35:06 UTC (rev 3126)
+++
jcr/branches/1.14-ISPN/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java 2010-09-16
18:43:44 UTC (rev 3127)
@@ -600,7 +600,7 @@
}
}
- return (ItemData)cache.put(new CacheId(node.getIdentifier()), node);
+ return (ItemData)cache.put(new CacheId(node.getIdentifier()), node, true);
}
protected ItemData putNodeInBufferedCache(NodeData node, ModifyChildOption
modifyListsOfChild)
@@ -636,7 +636,7 @@
}
cache.put(new CacheQPath(prop.getParentIdentifier(), prop.getQPath()),
prop.getIdentifier());
- return (PropertyData)cache.put(new CacheId(prop.getIdentifier()), prop);
+ return (PropertyData)cache.put(new CacheId(prop.getIdentifier()), prop, true);
}
protected void removeItem(ItemData item)
@@ -667,7 +667,7 @@
*/
protected void updateMixin(NodeData node)
{
- NodeData prevData = (NodeData)cache.put(new CacheId(node.getIdentifier()), node);
+ NodeData prevData = (NodeData)cache.put(new CacheId(node.getIdentifier()), node,
true);
if (prevData != null)
{