[exo-jcr-commits] exo-jcr SVN: r5854 - in jcr/trunk: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache and 12 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Mar 13 06:28:56 EDT 2012


Author: tolusha
Date: 2012-03-13 06:28:55 -0400 (Tue, 13 Mar 2012)
New Revision: 5854

Modified:
   jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestMoveNode.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCConnectionTestBase.java
Log:
EXOJCR-1788: allow to rename previously updated binary property

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -1916,45 +1916,15 @@
             FilePersistedValueData fpvd = (FilePersistedValueData)vd;
             if (fpvd.getFile() == null)
             {
-               // need read from storage
-               ValueData svd = getPropertyValue(prop.getIdentifier(), vd.getOrderNumber(), prop.getPersistedVersion());
-
-               if (svd == null)
-               {
-                  // error, value not found
-                  throw new RepositoryException("Value cannot be found in storage for cached Property "
-                     + prop.getQPath().getAsString() + ", orderNumb:" + vd.getOrderNumber() + ", pversion:"
-                     + prop.getPersistedVersion());
-               }
-
-               vals.set(i, svd);
+               // error, value not found
+               throw new RepositoryException("Value cannot be found in storage for cached Property "
+                  + prop.getQPath().getAsString() + ", orderNumb:" + vd.getOrderNumber() + ", pversion:"
+                  + prop.getPersistedVersion());
             }
          }
       }
    }
 
-   /**
-    * Gets the value content of the property defined by the given parameters
-    * @param propertyId the id of the property
-    * @param orderNumb the order number or the property
-    * @param persistedVersion the persisted version of the property
-    * @return the value content wrapped into a ValueData object
-    * @throws IllegalStateException if connection is already closed
-    * @throws RepositoryException  if some exception occurred
-    */
-   protected ValueData getPropertyValue(String propertyId, int orderNumb, int persistedVersion)
-      throws IllegalStateException, RepositoryException
-   {
-      final WorkspaceStorageConnection con = dataContainer.openConnection();
-      try
-      {
-         return con.getValue(propertyId, orderNumb, persistedVersion);
-      }
-      finally
-      {
-         con.close();
-      }
-   }
 
    /**
     * {@inheritDoc}

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -54,9 +54,11 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import javax.jcr.InvalidItemStateException;
@@ -481,6 +483,8 @@
          // copy state
          PlainChangesLogImpl newLog = PlainChangesLogImpl.createCopy(new ArrayList<ItemState>(), changesLog);
 
+         Map<String, PropertyData> lastUpdateStates = new HashMap<String, PropertyData>();
+
          for (Iterator<ItemState> iter = changesLog.getAllStates().iterator(); iter.hasNext();)
          {
             ItemState prevState = iter.next();
@@ -509,50 +513,63 @@
                   if (prevData.getValues() != null) // null if it's DELETE state
                   {
                      List<ValueData> values = new ArrayList<ValueData>();
-                     for (int i = 0; i < prevData.getValues().size(); i++)
+
+                     if (prevState.isRenamed() && lastUpdateStates.containsKey(prevState.getData().getIdentifier()))
                      {
-                        ValueData vd = prevData.getValues().get(i);
-
-                        if (vd instanceof TransientValueData)
+                        values = lastUpdateStates.get(prevState.getData().getIdentifier()).getValues();
+                     }
+                     else
+                     {
+                        for (int i = 0; i < prevData.getValues().size(); i++)
                         {
-                           TransientValueData tvd = (TransientValueData)vd;
-                           ValueData pvd;
+                           ValueData vd = prevData.getValues().get(i);
 
-                           if (vd.isByteArray())
+                           if (vd instanceof TransientValueData)
                            {
-                              pvd = new ByteArrayPersistedValueData(i, vd.getAsByteArray());
-                              values.add(pvd);
-                           }
-                           else
-                           {
-                              File destFile = null;
+                              TransientValueData tvd = (TransientValueData)vd;
+                              ValueData pvd;
 
-                              if (tvd.getSpoolFile() != null)
+                              if (vd.isByteArray())
                               {
-                                 // spooled to temp file
-                                 pvd = new StreamPersistedValueData(i, tvd.getSpoolFile(), destFile);
+                                 pvd = new ByteArrayPersistedValueData(i, vd.getAsByteArray());
+                                 values.add(pvd);
                               }
                               else
                               {
-                                 // with original stream
-                                 pvd = new StreamPersistedValueData(i, tvd.getOriginalStream(), destFile);
+                                 File destFile = null;
+
+                                 if (tvd.getSpoolFile() != null)
+                                 {
+                                    // spooled to temp file
+                                    pvd = new StreamPersistedValueData(i, tvd.getSpoolFile(), destFile);
+                                 }
+                                 else
+                                 {
+                                    // with original stream
+                                    pvd = new StreamPersistedValueData(i, tvd.getOriginalStream(), destFile);
+                                 }
+
+                                 values.add(pvd);
                               }
 
-                              values.add(pvd);
+                              tvd.delegate(pvd);
                            }
-
-                           tvd.delegate(pvd);
+                           else
+                           {
+                              values.add(vd);
+                           }
                         }
-                        else
-                        {
-                           values.add(vd);
-                        }
                      }
 
                      newData =
                         new PersistedPropertyData(prevData.getIdentifier(), prevData.getQPath(), prevData
                            .getParentIdentifier(), prevData.getPersistedVersion() + 1, prevData.getType(), prevData
                            .isMultiValued(), values);
+
+                     if (prevState.isAdded() || prevState.isUpdated())
+                     {
+                        lastUpdateStates.put(prevState.getData().getIdentifier(), (PropertyData)newData);
+                     }
                   }
                   else
                   {
@@ -614,6 +631,9 @@
                }
             }
          }
+
+         lastUpdateStates.clear(); //help to GC
+
          return newLog;
       }
    }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -28,6 +28,8 @@
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.dataflow.ItemState;
 import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
+import org.exoplatform.services.jcr.dataflow.persistent.PersistedNodeData;
+import org.exoplatform.services.jcr.dataflow.persistent.PersistedPropertyData;
 import org.exoplatform.services.jcr.dataflow.persistent.WorkspaceStorageCache;
 import org.exoplatform.services.jcr.dataflow.persistent.WorkspaceStorageCacheListener;
 import org.exoplatform.services.jcr.datamodel.IllegalPathException;
@@ -49,7 +51,6 @@
 import org.exoplatform.services.jcr.impl.backup.rdbms.DataRestoreContext;
 import org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter;
 import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
 import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory;
 import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory.CacheType;
 import org.exoplatform.services.log.ExoLogger;
@@ -866,7 +867,7 @@
     */
    public void onSaveItems(final ItemStateChangesLog itemStates)
    {
-      //  if something happen we will rollback changes
+      //  if something happen we will rollback changes 
       boolean rollback = true;
       try
       {
@@ -1766,38 +1767,6 @@
    }
 
    /**
-    * Update Node hierarchy in case of same-name siblings reorder.
-    * Assumes the new (updated) nodes already put in the cache. Previous name of updated nodes will be calculated
-    * and that node will be deleted (if has same id as the new node). Children paths will be updated to a new node path.
-    *
-    * @param node NodeData
-    * @param prevNode NodeData
-    */
-   protected void update(final NodeData node, final NodeData prevNode)
-   {
-      // get previously cached NodeData and using its name remove child on the parent
-      Fqn<String> prevFqn =
-         makeChildFqn(childNodes, node.getParentIdentifier(), prevNode.getQPath().getEntries()[prevNode.getQPath()
-            .getEntries().length - 1]);
-      if (node.getIdentifier().equals(cache.get(prevFqn, ITEM_ID)))
-      {
-         // it's same-name siblings re-ordering, delete previous child
-         if (!cache.removeNode(prevFqn) && LOG.isDebugEnabled())
-         {
-            LOG.debug("Node not extists as a child but update asked " + node.getQPath().getAsString());
-         }
-      }
-
-      // update childs paths if index changed
-      int nodeIndex = node.getQPath().getEntries()[node.getQPath().getEntries().length - 1].getIndex();
-      int prevNodeIndex = prevNode.getQPath().getEntries()[prevNode.getQPath().getEntries().length - 1].getIndex();
-      if (nodeIndex != prevNodeIndex)
-      {
-         updateTreePath(node.getIdentifier(), node.getQPath(), null); // don't change ACL, it's same parent
-      }
-   }
-
-   /**
     * This method duplicate update method, except using getFromBuffer inside.
     * 
     * @param node NodeData
@@ -1876,10 +1845,10 @@
 
                NodeData prevNode = (NodeData)data;
 
-               TransientNodeData newNode =
-                  new TransientNodeData(newPath, prevNode.getIdentifier(), prevNode.getPersistedVersion(),
-                     prevNode.getPrimaryTypeName(), prevNode.getMixinTypeNames(), prevNode.getOrderNumber(),
-                     prevNode.getParentIdentifier(), inheritACL ? acl : prevNode.getACL());
+               NodeData newNode =
+                  new PersistedNodeData(prevNode.getIdentifier(), newPath, prevNode.getParentIdentifier(),
+                     prevNode.getPersistedVersion(), prevNode.getOrderNumber(), prevNode.getPrimaryTypeName(),
+                     prevNode.getMixinTypeNames(), inheritACL ? acl : prevNode.getACL());
                // update this node
                cache.put(makeItemFqn(newNode.getIdentifier()), ITEM_DATA, newNode);
             }
@@ -1896,9 +1865,9 @@
                   inheritACL = false;
                }
 
-               TransientPropertyData newProp =
-                  new TransientPropertyData(newPath, prevProp.getIdentifier(), prevProp.getPersistedVersion(), prevProp
-                     .getType(), prevProp.getParentIdentifier(), prevProp.isMultiValued(), prevProp.getValues());
+               PropertyData newProp =
+                  new PersistedPropertyData(prevProp.getIdentifier(), newPath, prevProp.getParentIdentifier(),
+                     prevProp.getPersistedVersion(), prevProp.getType(), prevProp.isMultiValued(), prevProp.getValues());
                cache.put(makeItemFqn(newProp.getIdentifier()), ITEM_DATA, newProp);
             }
          }
@@ -1906,57 +1875,6 @@
    }
 
    /**
-    * Update Nodes tree with new path.
-    *
-    * @param parentId String - root node id of JCR subtree.
-    * @param rootPath QPath
-    * @param acl AccessControlList
-    */
-   protected void updateTreePath(final String parentId, final QPath rootPath, final AccessControlList acl)
-   {
-      boolean inheritACL = acl != null;
-
-      // update properties
-      for (Iterator<PropertyData> iter = new ChildPropertiesIterator<PropertyData>(parentId); iter.hasNext();)
-      {
-         PropertyData prevProp = iter.next();
-
-         if (inheritACL
-            && (prevProp.getQPath().getName().equals(Constants.EXO_PERMISSIONS) || prevProp.getQPath().getName()
-               .equals(Constants.EXO_OWNER)))
-         {
-            inheritACL = false;
-         }
-         // recreate with new path for child Props only
-         QPath newPath =
-            QPath
-               .makeChildPath(rootPath, prevProp.getQPath().getEntries()[prevProp.getQPath().getEntries().length - 1]);
-         TransientPropertyData newProp =
-            new TransientPropertyData(newPath, prevProp.getIdentifier(), prevProp.getPersistedVersion(), prevProp
-               .getType(), prevProp.getParentIdentifier(), prevProp.isMultiValued(), prevProp.getValues());
-         cache.put(makeItemFqn(newProp.getIdentifier()), ITEM_DATA, newProp);
-      }
-
-      // update child nodes
-      for (Iterator<NodeData> iter = new ChildNodesIterator<NodeData>(parentId); iter.hasNext();)
-      {
-         NodeData prevNode = iter.next();
-         // recreate with new path for child Nodes only
-         QPath newPath =
-            QPath
-               .makeChildPath(rootPath, prevNode.getQPath().getEntries()[prevNode.getQPath().getEntries().length - 1]);
-         TransientNodeData newNode =
-            new TransientNodeData(newPath, prevNode.getIdentifier(), prevNode.getPersistedVersion(),
-               prevNode.getPrimaryTypeName(), prevNode.getMixinTypeNames(), prevNode.getOrderNumber(),
-               prevNode.getParentIdentifier(), inheritACL ? acl : prevNode.getACL());
-         // update this node
-         cache.put(makeItemFqn(newNode.getIdentifier()), ITEM_DATA, newNode);
-         // update childs recursive
-         updateTreePath(newNode.getIdentifier(), newNode.getQPath(), inheritACL ? acl : null);
-      }
-   }
-
-   /**
     * Update child Nodes ACLs.
     *
     * @param parentId String - root node id of JCR subtree.

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -355,15 +355,6 @@
    }
 
    /**
-    * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getValue(java.lang.String, int, int)
-    */
-   public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException,
-      RepositoryException
-   {
-      return null;
-   }
-
-   /**
     * {@inheritDoc}
     */
    public boolean getChildNodesDataByPage(NodeData parent, int fromOrderNum, int toOrderNum, List<NodeData> childs)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/DBConstants.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -120,11 +120,6 @@
    protected String FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID;
 
    /**
-    * FIND_VALUE_BY_PROPERTYID_OREDERNUMB.
-    */
-   protected String FIND_VALUE_BY_PROPERTYID_OREDERNUMB;
-
-   /**
     * FIND_NODES_BY_PARENTID.
     */
    protected String FIND_NODES_BY_PARENTID;

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -157,8 +157,6 @@
 
    protected PreparedStatement findValuesDataByPropertyId;
 
-   protected PreparedStatement findValueByPropertyIdOrderNumber;
-
    protected PreparedStatement findNodesByParentId;
 
    protected PreparedStatement findLastOrderNumberByParentId;
@@ -491,11 +489,6 @@
             findValuesDataByPropertyId.close();
          }
 
-         if (findValueByPropertyIdOrderNumber != null)
-         {
-            findValueByPropertyIdOrderNumber.close();
-         }
-
          if (findNodesByParentId != null)
          {
             findNodesByParentId.close();
@@ -1418,54 +1411,6 @@
       }
    }
 
-   /**
-    * Reads Property Value from persistent storage.
-    * 
-    * @param propertyId String, Property id
-    * @param orderNumb int, Value order number (in list of values)
-    * @param persistedVersion int 
-    * @return ValueData
-    * @throws RepositoryException if read error occurs
-    */
-   public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws RepositoryException
-   {
-      try
-      {
-         String cid = getInternalId(propertyId);
-         ResultSet valueRecord = findValueByPropertyIdOrderNumber(cid, orderNumb);
-         try
-         {
-            if (valueRecord.next())
-            {
-               String storageId = valueRecord.getString(COLUMN_VSTORAGE_DESC);
-               return valueRecord.wasNull() ? readValueData(cid, orderNumb, persistedVersion, valueRecord
-                  .getBinaryStream(COLUMN_VDATA)) : readValueData(propertyId, orderNumb, storageId);
-            }
-
-            return null;
-         }
-         finally
-         {
-            try
-            {
-               valueRecord.close();
-            }
-            catch (SQLException e)
-            {
-               LOG.error("Can't close the ResultSet ", e);
-            }
-         }
-      }
-      catch (SQLException e)
-      {
-         throw new RepositoryException(e);
-      }
-      catch (IOException e)
-      {
-         throw new RepositoryException(e);
-      }
-   }
-
    // ------------------ Private methods ---------------
 
    /**
@@ -2832,8 +2777,6 @@
 
    protected abstract ResultSet findValuesStorageDescriptorsByPropertyId(String cid) throws SQLException;
 
-   protected abstract ResultSet findValueByPropertyIdOrderNumber(String cid, int orderNumb) throws SQLException;
-
    protected abstract ResultSet findMaxPropertyVersion(String parentId, String name, int index) throws SQLException;
 
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -125,9 +125,6 @@
 
       FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=?";
 
-      FIND_VALUE_BY_PROPERTYID_OREDERNUMB =
-         "select DATA, STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=? and ORDER_NUM=?";
-
       FIND_NODES_BY_PARENTID = "select * from JCR_MITEM" + " where I_CLASS=1 and PARENT_ID=?" + " order by N_ORDER_NUM";
 
       FIND_LAST_ORDER_NUMBER_BY_PARENTID =
@@ -497,22 +494,6 @@
     * {@inheritDoc}
     */
    @Override
-   protected ResultSet findValueByPropertyIdOrderNumber(String cid, int orderNumb) throws SQLException
-   {
-      if (findValueByPropertyIdOrderNumber == null)
-         findValueByPropertyIdOrderNumber = dbConnection.prepareStatement(FIND_VALUE_BY_PROPERTYID_OREDERNUMB);
-      else
-         findValueByPropertyIdOrderNumber.clearParameters();
-
-      findValueByPropertyIdOrderNumber.setString(1, cid);
-      findValueByPropertyIdOrderNumber.setInt(2, orderNumb);
-      return findValueByPropertyIdOrderNumber.executeQuery();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
    protected int renameNode(NodeData data) throws SQLException
    {
       if (renameNode == null)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -131,9 +131,6 @@
 
       FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=?";
 
-      FIND_VALUE_BY_PROPERTYID_OREDERNUMB =
-         "select DATA, STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=? and ORDER_NUM=?";
-
       FIND_NODES_BY_PARENTID =
          "select * from JCR_SITEM" + " where I_CLASS=1 and CONTAINER_NAME=? and PARENT_ID=?" + " order by N_ORDER_NUM";
 
@@ -528,26 +525,6 @@
     * {@inheritDoc}
     */
    @Override
-   protected ResultSet findValueByPropertyIdOrderNumber(String cid, int orderNumb) throws SQLException
-   {
-      if (findValueByPropertyIdOrderNumber == null)
-      {
-         findValueByPropertyIdOrderNumber = dbConnection.prepareStatement(FIND_VALUE_BY_PROPERTYID_OREDERNUMB);
-      }
-      else
-      {
-         findValueByPropertyIdOrderNumber.clearParameters();
-      }
-
-      findValueByPropertyIdOrderNumber.setString(1, cid);
-      findValueByPropertyIdOrderNumber.setInt(2, orderNumb);
-      return findValueByPropertyIdOrderNumber.executeQuery();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
    protected int renameNode(NodeData data) throws SQLException
    {
       if (renameNode == null)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -148,9 +148,6 @@
 
       FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=?";
 
-      FIND_VALUE_BY_PROPERTYID_OREDERNUMB =
-         "select DATA, STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=? and ORDER_NUM=?";
-
       FIND_NODES_BY_PARENTID = "select * from JCR_MITEM" + " where I_CLASS=1 and PARENT_ID=?" + " order by N_ORDER_NUM";
 
       FIND_NODES_BY_PARENTID_CQ = FIND_NODES_BY_PARENTID_CQ_QUERY;
@@ -747,26 +744,6 @@
     * {@inheritDoc}
     */
    @Override
-   protected ResultSet findValueByPropertyIdOrderNumber(String cid, int orderNumb) throws SQLException
-   {
-      if (findValueByPropertyIdOrderNumber == null)
-      {
-         findValueByPropertyIdOrderNumber = dbConnection.prepareStatement(FIND_VALUE_BY_PROPERTYID_OREDERNUMB);
-      }
-      else
-      {
-         findValueByPropertyIdOrderNumber.clearParameters();
-      }
-
-      findValueByPropertyIdOrderNumber.setString(1, cid);
-      findValueByPropertyIdOrderNumber.setInt(2, orderNumb);
-      return findValueByPropertyIdOrderNumber.executeQuery();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
    protected int renameNode(NodeData data) throws SQLException
    {
       if (renameNode == null)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -154,9 +154,6 @@
 
       FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=?";
 
-      FIND_VALUE_BY_PROPERTYID_OREDERNUMB =
-         "select DATA, STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=? and ORDER_NUM=?";
-
       FIND_NODES_BY_PARENTID =
          "select * from JCR_SITEM" + " where I_CLASS=1 and CONTAINER_NAME=? and PARENT_ID=?" + " order by N_ORDER_NUM";
 
@@ -608,26 +605,6 @@
     * {@inheritDoc}
     */
    @Override
-   protected ResultSet findValueByPropertyIdOrderNumber(String cid, int orderNumb) throws SQLException
-   {
-      if (findValueByPropertyIdOrderNumber == null)
-      {
-         findValueByPropertyIdOrderNumber = dbConnection.prepareStatement(FIND_VALUE_BY_PROPERTYID_OREDERNUMB);
-      }
-      else
-      {
-         findValueByPropertyIdOrderNumber.clearParameters();
-      }
-
-      findValueByPropertyIdOrderNumber.setString(1, cid);
-      findValueByPropertyIdOrderNumber.setInt(2, orderNumb);
-      return findValueByPropertyIdOrderNumber.executeQuery();
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   @Override
    protected int renameNode(NodeData data) throws SQLException
    {
       if (renameNode == null)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -21,7 +21,6 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
-import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.ACLHolder;
 import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
@@ -94,12 +93,6 @@
 
    /**
     * The description of the statistics corresponding to the method 
-    * <code>getValue(String propertyId, int orderNumb, int persistedVersion)</code>
-    */
-   private static final String GET_VALUE_DESCR = "getValue";
-
-   /**
-    * The description of the statistics corresponding to the method 
     * <code>isOpened()</code>
     */
    private static final String IS_OPENED_DESCR = "isOpened";
@@ -221,7 +214,6 @@
       ALL_STATISTICS.put(LIST_CHILD_PROPERTIES_DATA_DESCR, new Statistics(GLOBAL_STATISTICS,
          LIST_CHILD_PROPERTIES_DATA_DESCR));
       ALL_STATISTICS.put(GET_REFERENCES_DATA_DESCR, new Statistics(GLOBAL_STATISTICS, GET_REFERENCES_DATA_DESCR));
-      ALL_STATISTICS.put(GET_VALUE_DESCR, new Statistics(GLOBAL_STATISTICS, GET_VALUE_DESCR));
       ALL_STATISTICS.put(GET_ACL_HOLDERS, new Statistics(GLOBAL_STATISTICS, GET_ACL_HOLDERS));
       // Write Methods
       // Commit
@@ -579,24 +571,6 @@
          s.end();
       }
    }
-   
-   /**
-    * {@inheritDoc}
-    */
-   public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException,
-      RepositoryException
-   {
-      Statistics s = ALL_STATISTICS.get(GET_VALUE_DESCR);
-      try
-      {
-         s.begin();
-         return wcs.getValue(propertyId, orderNumb, persistedVersion);
-      }
-      finally
-      {
-         s.end();
-      }
-   }
 
    /**
     * {@inheritDoc}

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -23,7 +23,6 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
-import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.ACLHolder;
 
@@ -223,23 +222,6 @@
       UnsupportedOperationException;
 
    /**
-    * Gets the value content of the property defined by the given parameters.
-    * 
-    * @param propertyId 
-    *           the id of the property
-    * @param orderNumb 
-    *           the order number or the property
-    * @param persistedVersion 
-    *           the persisted version of the property
-    * @return the value content wrapped into a ValueData object
-    * @throws IllegalStateException 
-    *           if connection is already closed
-    * @throws RepositoryException 
-    *           if some exception occurred
-    */
-   ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException, RepositoryException;
-
-   /**
     * Get child Nodes of the parent node.
     * 
     * @param parent 

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -30,7 +30,6 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
-import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.core.ItemImpl;
 import org.exoplatform.services.jcr.impl.core.NodeImpl;
 import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
@@ -726,15 +725,6 @@
       }
 
       /**
-       * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getValue(java.lang.String, int, int)
-       */
-      public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException,
-         RepositoryException
-      {
-         return null;
-      }
-
-      /**
        * @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getChildNodesDataByPage(org.exoplatform.services.jcr.datamodel.NodeData, int, int, java.util.List)
        */
       public boolean getChildNodesDataByPage(NodeData parent, int fromOrderNum, int toOrderNum, List<NodeData> childs)

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestMoveNode.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestMoveNode.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestMoveNode.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -22,6 +22,7 @@
 import org.exoplatform.services.jcr.datamodel.InternalQName;
 import org.exoplatform.services.jcr.datamodel.QPath;
 
+import java.io.ByteArrayInputStream;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -29,8 +30,10 @@
 import java.util.List;
 import java.util.Random;
 
+import javax.jcr.Item;
 import javax.jcr.Node;
 import javax.jcr.PathNotFoundException;
+import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 
 /**
@@ -204,6 +207,59 @@
 
    }
 
+   public void testRenameNodeWithBinaryProperty() throws Exception
+   {
+      Node parentNode = root.addNode("testRenameNodeWithBinaryProperty");
+      String path = parentNode.getPath();
+      String value = "my Property Value";
+
+      parentNode.setProperty("myBinaryData", new ByteArrayInputStream(value.getBytes("UTF-8")));
+      root.save();
+
+      value = "my Property Value 2";
+      parentNode.setProperty("myBinaryData", new ByteArrayInputStream(value.getBytes("UTF-8")));
+      session.move(path, path + "2");
+
+      value = "my Property Value 3";
+      parentNode.setProperty("myBinaryData", new ByteArrayInputStream(value.getBytes("UTF-8")));
+      session.move(path + "2", path + "3");
+      session.save();
+
+      Item i = session.getItem(path + "3/myBinaryData");
+
+      assertTrue(i instanceof Property);
+
+      Property p = (Property)i;
+      InputStream is = p.getStream();
+      byte[] bValue = new byte[is.available()];
+      is.read(bValue);
+      is.close();
+
+      assertEquals(value, new String(bValue, "UTF-8"));
+   }
+
+   public void testRenameNodeWithBinaryProperty2() throws Exception
+   {
+      Node parentNode = root.addNode("testRenameNodeWithBinaryProperty");
+      String path = parentNode.getPath();
+
+      String value = "my Property Value";
+      parentNode.setProperty("myBinaryData", new ByteArrayInputStream(value.getBytes("UTF-8")));
+      session.move(path, path + "2");
+      session.save();
+
+      Item i = session.getItem(path + "2/myBinaryData");
+
+      assertTrue(i instanceof Property);
+      Property p = (Property)i;
+      InputStream is = p.getStream();
+      byte[] bValue = new byte[is.available()];
+      is.read(bValue);
+      is.close();
+
+      assertEquals(value, new String(bValue, "UTF-8"));
+   }
+   
    public void testLocalBigFiles() throws Exception
    {
       Node testBinaryValue = root.addNode("testBinaryValue");

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -622,12 +622,6 @@
          return null;
       }
 
-      public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException,
-         RepositoryException
-      {
-         return null;
-      }
-
       public boolean getChildNodesDataByPage(NodeData parent, int fromOrderNum, int toOrderNum, List<NodeData> childs)
          throws RepositoryException
       {

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -960,12 +960,6 @@
          return children;
       }
 
-      public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException,
-         RepositoryException
-      {
-         return null;
-      }
-
       public boolean getChildNodesDataByPage(NodeData parent, int fromOrderNum, int toOrderNum, List<NodeData> childs)
          throws RepositoryException
       {

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -33,7 +33,6 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
-import org.exoplatform.services.jcr.datamodel.ValueData;
 import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.ACLHolder;
@@ -325,12 +324,6 @@
          return getChildNodesData(parent);
       }
 
-      public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException,
-         RepositoryException
-      {
-         return null;
-      }
-
       public boolean getChildNodesDataByPage(NodeData parent, int fromOrderNum, int toOrderNum, List<NodeData> childs)
          throws RepositoryException
       {

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCConnectionTestBase.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCConnectionTestBase.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCConnectionTestBase.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -254,16 +254,4 @@
       rs.next();
       assertEquals(rsRemote.getString("STORAGE_DESC"), rs.getString("STORAGE_DESC"));
    }
-
-   public void testFindValueByPropertyIdOrderNumber() throws Exception
-   {
-
-      ResultSet rsRemote = jdbcConn.findValueByPropertyIdOrderNumber("A", 16);
-      rsRemote.next();
-      ResultSet rs =
-         connect.createStatement().executeQuery(
-            "select DATA from " + "JCR_" + tableType + "VALUE" + " where PROPERTY_ID='A' and ORDER_NUM=16");
-      rs.next();
-      assertEquals(rsRemote.getString("DATA"), rs.getString("DATA"));
-   }
 }

Modified: jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java	2012-03-13 09:17:20 UTC (rev 5853)
+++ jcr/trunk/exo.jcr.component.core.impl.infinispan.v5/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/ISPNCacheWorkspaceStorageCache.java	2012-03-13 10:28:55 UTC (rev 5854)
@@ -31,6 +31,8 @@
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.dataflow.ItemState;
 import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
+import org.exoplatform.services.jcr.dataflow.persistent.PersistedNodeData;
+import org.exoplatform.services.jcr.dataflow.persistent.PersistedPropertyData;
 import org.exoplatform.services.jcr.dataflow.persistent.WorkspaceStorageCache;
 import org.exoplatform.services.jcr.dataflow.persistent.WorkspaceStorageCacheListener;
 import org.exoplatform.services.jcr.datamodel.IllegalPathException;
@@ -52,7 +54,6 @@
 import org.exoplatform.services.jcr.impl.backup.rdbms.DataRestoreContext;
 import org.exoplatform.services.jcr.impl.core.itemfilters.QPathEntryFilter;
 import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
 import org.exoplatform.services.jcr.infinispan.AbstractMapper;
 import org.exoplatform.services.jcr.infinispan.CacheKey;
 import org.exoplatform.services.jcr.infinispan.ISPNCacheFactory;
@@ -1705,10 +1706,10 @@
             // update node
             NodeData prevNode = (NodeData)data;
 
-            TransientNodeData newNode =
-               new TransientNodeData(newPath, prevNode.getIdentifier(), prevNode.getPersistedVersion(),
-                  prevNode.getPrimaryTypeName(), prevNode.getMixinTypeNames(), prevNode.getOrderNumber(),
-                  prevNode.getParentIdentifier(), inheritACL ? acl : prevNode.getACL());
+            NodeData newNode =
+               new PersistedNodeData(prevNode.getIdentifier(), newPath, prevNode.getParentIdentifier(),
+                  prevNode.getPersistedVersion(), prevNode.getOrderNumber(), prevNode.getPrimaryTypeName(),
+                  prevNode.getMixinTypeNames(), inheritACL ? acl : prevNode.getACL());
 
             // update this node
             cache.put(new CacheId(ownerId, newNode.getIdentifier()), newNode);
@@ -1725,9 +1726,9 @@
                inheritACL = false;
             }
 
-            TransientPropertyData newProp =
-               new TransientPropertyData(newPath, prevProp.getIdentifier(), prevProp.getPersistedVersion(),
-                  prevProp.getType(), prevProp.getParentIdentifier(), prevProp.isMultiValued(), prevProp.getValues());
+            PropertyData newProp =
+               new PersistedPropertyData(prevProp.getIdentifier(), newPath, prevProp.getParentIdentifier(),
+                  prevProp.getPersistedVersion(), prevProp.getType(), prevProp.isMultiValued(), prevProp.getValues());
 
             // update this property
             cache.put(new CacheId(ownerId, newProp.getIdentifier()), newProp);
@@ -1773,7 +1774,6 @@
    /**
     * This class defines all the methods that could change between the replicated and the distributed mode.
     * By default it implements the methods for the local and replicated mode.
-    *
     */
    private class GlobalOperationCaller
    {



More information about the exo-jcr-commits mailing list