[exo-jcr-commits] exo-jcr SVN: r5074 - in jcr/branches/1.12.x: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core and 7 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Oct 20 08:10:13 EDT 2011


Author: trang_vu
Date: 2011-10-20 08:10:12 -0400 (Thu, 20 Oct 2011)
New Revision: 5074

Added:
   jcr/branches/1.12.x/patch/1.12.11-GA/JCR-1661/readme.txt
Modified:
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
   jcr/branches/1.12.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java
Log:
JCR-1661: TESTING: Regression during daily testing

Fix description
    * For WorkspaceMoveTest and WorkspaceNodeUpdateTest: fixed by avoiding extra cache cleaning while running in cluster environment but with single node.
    * For other tests: fixed by avoiding extra putting NullItemData instances to cache.


Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -70,6 +70,24 @@
    ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException;
 
    /**
+    * Find Item by parent (id) and name (with path index) of defined type and create 
+    * or not (defined by createNullItemData) null item data.
+    * 
+    * @param parent 
+    *          NodeData
+    * @param name 
+    *          item name
+    * @param itemType 
+    *          itemType
+    * @param createNullItemData 
+    *          defines if NullItemData should be created          
+    * @return ItemData, data by parent and name
+    * @throws RepositoryException
+    */
+   ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType, boolean createNullItemData)
+      throws RepositoryException;
+
+   /**
     * Find Item by identifier.
     * 
     * @param String identifier

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -419,7 +419,8 @@
       PropertyImpl prevProp;
       PropertyDefinitionDatas defs;
       ItemImpl prevItem =
-         dataManager.getItem(parentNode.nodeData(), new QPathEntry(propertyName, 0), true, ItemType.PROPERTY);
+         dataManager.getItem(parentNode.nodeData(), new QPathEntry(propertyName, 0), true, ItemType.PROPERTY, true,
+            false);
 
       NodeTypeDataManager ntm = session.getWorkspace().getNodeTypesHolder();
       NodeData parentData = (NodeData)parentNode.getData();

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -576,7 +576,7 @@
 
       PropertyData prop =
          (PropertyData)dataManager.getItemData(((NodeData)getData()), new QPathEntry(Constants.JCR_MIXINTYPES, 0),
-            ItemType.PROPERTY);
+            ItemType.PROPERTY, false);
       ItemState state;
 
       if (prop != null)
@@ -1773,7 +1773,7 @@
 
       for (PropertyDefinitionData pd : ntmanager.getAllPropertyDefinitions(removedName))
       {
-         ItemData p = dataManager.getItemData(nodeData(), new QPathEntry(pd.getName(), 1), ItemType.PROPERTY);
+         ItemData p = dataManager.getItemData(nodeData(), new QPathEntry(pd.getName(), 1), ItemType.PROPERTY, false);
          if (p != null && !p.isNode())
             // remove it
             dataManager.delete(p, ancestorToSave);
@@ -2850,13 +2850,15 @@
 
       int ind = 1;
 
-      NodeData sibling = (NodeData)dataManager.getItemData(parentNode, new QPathEntry(nameToAdd, ind), ItemType.NODE);
+      NodeData sibling =
+         (NodeData)dataManager.getItemData(parentNode, new QPathEntry(nameToAdd, ind), ItemType.NODE, false);
       while (sibling != null)
       {
          if (allowSns)
          {
             ind++;
-            sibling = (NodeData)dataManager.getItemData(parentNode, new QPathEntry(nameToAdd, ind), ItemType.NODE);
+            sibling =
+               (NodeData)dataManager.getItemData(parentNode, new QPathEntry(nameToAdd, ind), ItemType.NODE, false);
          }
          else
          {

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -224,6 +224,12 @@
     */
    public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException
    {
+      return getItemData(parent, name, itemType, true);
+   }
+
+   public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType, boolean createNullItemData)
+      throws RepositoryException
+   {
       if (name.getName().equals(JCRPath.PARENT_RELPATH) && name.getNamespace().equals(Constants.NS_DEFAULT_URI))
       {
          if (parent.getIdentifier().equals(Constants.ROOT_UUID))
@@ -249,7 +255,7 @@
             return null;
          }
          // 2. Try from txdatamanager
-         data = transactionableManager.getItemData(parent, name, itemType);
+         data = transactionableManager.getItemData(parent, name, itemType, createNullItemData);
       }
       else if (!state.isDeleted())
       {
@@ -328,6 +334,31 @@
    public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool, ItemType itemType, boolean apiRead)
       throws RepositoryException
    {
+      return getItem(parent, name, pool, itemType, apiRead, true);
+   }
+
+   /**
+    * For internal use. Return Item by parent NodeDada and the name of searched item.
+    * 
+    * @param parent
+    *          - parent of the searched item
+    * @param name
+    *          - item name
+    * @param itemType
+    *          - item type
+    * @param pool
+    *          - indicates does the item fall in pool
+    * @param apiRead 
+    *          - if true will call postRead Action and check permissions              
+    * @param createNullItemData
+    *          - defines if there is a need to create NullItemData  
+    *          
+    * @return existed item or null if not found
+    * @throws RepositoryException
+    */
+   public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool, ItemType itemType, boolean apiRead,
+      boolean createNullItemData) throws RepositoryException
+   {
       long start = System.currentTimeMillis();
       if (log.isDebugEnabled())
       {
@@ -337,7 +368,7 @@
       ItemImpl item = null;
       try
       {
-         return item = readItem(getItemData(parent, name, itemType), parent, pool, apiRead);
+         return item = readItem(getItemData(parent, name, itemType, createNullItemData), parent, pool, apiRead);
       }
       finally
       {

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -118,7 +118,7 @@
          {
             final ItemData pdata =
                avoidCheckExistedChildItems ? null : targetDataManager.getItemData(parent, new QPathEntry(
-                  ndef.getName(), 0), ItemType.NODE);
+                  ndef.getName(), 0), ItemType.NODE, false);
             if (pdata == null && !addedNodes.contains(ndef.getName()) || pdata != null && !pdata.isNode())
             {
 
@@ -163,7 +163,7 @@
 
             final ItemData pdata =
                avoidCheckExistedChildItems ? null : targetDataManager.getItemData(parent, new QPathEntry(
-                  pdef.getName(), 0), ItemType.PROPERTY);
+                  pdef.getName(), 0), ItemType.PROPERTY, false);
             if (pdata == null && !addedProperties.contains(pdef.getName()) || pdata != null && pdata.isNode())
             {
 

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -182,9 +182,19 @@
    /**
     * {@inheritDoc}
     */
-   public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException
+   public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType)
+      throws RepositoryException
    {
-      final ItemData item = persistentManager.getItemData(parent, name, itemType);
+      return getItemData(parent, name, itemType, true);
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType, boolean createNullItemData)
+      throws RepositoryException
+   {
+      final ItemData item = persistentManager.getItemData(parent, name, itemType, createNullItemData);
       return item != null && item.isNode() ? initACL(parent, (NodeData)item) : item;
    }
 

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -402,7 +402,16 @@
    @Override
    public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException
    {
+      return getItemData(parentData, name, itemType, true);
+   }
 
+   /**
+    * {@inheritDoc}
+    */
+   public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType, boolean createNullItemData)
+      throws RepositoryException
+   {
+
       // 1. Try from cache
       ItemData data = getCachedItemData(parentData, name, itemType);
 
@@ -419,7 +428,7 @@
             data = getCachedItemData(parentData, name, itemType);
             if (data == null)
             {
-               data = getPersistedItemData(parentData, name, itemType);
+               data = getPersistedItemData(parentData, name, itemType, createNullItemData);
             }
          }
          finally
@@ -755,11 +764,36 @@
    protected ItemData getPersistedItemData(NodeData parentData, QPathEntry name, ItemType itemType)
       throws RepositoryException
    {
+      return getPersistedItemData(parentData, name, itemType, true);
+   }
+
+   /**
+    * Get persisted ItemData.
+    * 
+    * @param parentData
+    *          parent
+    * @param name
+    *          Item name
+    * @param itemType
+    *          item type
+    * @param createNullItemData
+    *          indicates if we need to create NullItemData  
+    * @return ItemData
+    * @throws RepositoryException
+    *           error
+    */
+   protected ItemData getPersistedItemData(NodeData parentData, QPathEntry name, ItemType itemType,
+      boolean createNullItemData) throws RepositoryException
+   {
       ItemData data = super.getItemData(parentData, name, itemType);
       if (cache.isEnabled())
       {
-         if (data == null)
+         if (data != null)
          {
+            cache.put(data);
+         }
+         else if (createNullItemData)
+         {
             if (itemType == ItemType.NODE || itemType == ItemType.UNKNOWN)
             {
                cache.put(new NullNodeData(parentData, name));
@@ -769,10 +803,6 @@
                cache.put(new NullPropertyData(parentData, name));
             }
          }
-         else
-         {
-            cache.put(data);
-         }
       }
       return data;
    }

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -139,15 +139,24 @@
    @Override
    public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException
    {
+      return getItemData(parentData, name, itemType, true);
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType, boolean createNullItemData)
+      throws RepositoryException
+   {
       if (parentData != null)
       {
          final QPath ipath = QPath.makeChildPath(parentData.getQPath(), name);
          if (isSystemDescendant(ipath) && !this.equals(versionDataManager))
          {
-            return versionDataManager.getItemData(parentData, name, itemType);
+            return versionDataManager.getItemData(parentData, name, itemType, createNullItemData);
          }
       }
-      return super.getItemData(parentData, name, itemType);
+      return super.getItemData(parentData, name, itemType, createNullItemData);
    }
 
    /**

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -994,7 +994,8 @@
             LOG.error("Unexpected object found by FQN:" + getFqn() + " and key:" + key + ". Expected Set, but found:"
                + existingObject.getClass().getName());
          }
-         else if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL)
+         else if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL
+            && cache.getMembers().size() > 1)
          {
             // to prevent consistency issue since we don't have the list in the local cache, we are in cluster env
             // and we are in a non local mode, we clear the list in order to enforce other cluster nodes to reload it from the db
@@ -1029,7 +1030,7 @@
       @Override
       public void apply()
       {
-         if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL)
+         if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL && cache.getMembers().size() > 1)
          {
             // to prevent consistency issue since we don't have the list in the local cache, we are in cluster env
             // and we are in a non local mode, we remove all the patterns in order to enforce other cluster nodes to reload them from the db

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -119,6 +119,15 @@
    /**
     * {@inheritDoc}
     */
+   public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType, boolean createNullItemData)
+      throws RepositoryException
+   {
+      return copyItemData(storageDataManager.getItemData(parentData, name, itemType, createNullItemData));
+   }
+
+   /**
+    * {@inheritDoc}
+    */
    public ItemData getItemData(String identifier) throws RepositoryException
    {
       return copyItemData(storageDataManager.getItemData(identifier));

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -254,6 +254,15 @@
     */
    public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException
    {
+      return getItemData(parentData, name, itemType, true);
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType, boolean createNullItemData)
+      throws RepositoryException
+   {
       ItemData data = null;
       if (txStarted())
       {
@@ -269,7 +278,7 @@
       }
       else
       {
-         return storageDataManager.getItemData(parentData, name, itemType);
+         return storageDataManager.getItemData(parentData, name, itemType, createNullItemData);
       }
    }
 

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -229,7 +229,7 @@
       ItemData sameNameNode = null;
       try
       {
-         sameNameNode = dataConsumer.getItemData(parentData, new QPathEntry(name, 0), ItemType.NODE);
+         sameNameNode = dataConsumer.getItemData(parentData, new QPathEntry(name, 0), ItemType.NODE, false);
       }
       catch (PathNotFoundException e)
       {

Modified: jcr/branches/1.12.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java
===================================================================
--- jcr/branches/1.12.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java	2011-10-20 07:29:45 UTC (rev 5073)
+++ jcr/branches/1.12.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java	2011-10-20 12:10:12 UTC (rev 5074)
@@ -20,8 +20,14 @@
 
 import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
 import org.exoplatform.services.jcr.dataflow.persistent.ItemsPersistenceListener;
+import org.exoplatform.services.jcr.datamodel.ItemData;
+import org.exoplatform.services.jcr.datamodel.ItemType;
+import org.exoplatform.services.jcr.datamodel.NodeData;
+import org.exoplatform.services.jcr.datamodel.QPathEntry;
 import org.exoplatform.services.jcr.impl.storage.SystemDataContainerHolder;
 
+import javax.jcr.RepositoryException;
+
 /**
  * Created by The eXo Platform SAS.
  * 
@@ -39,6 +45,12 @@
       {
          super(null, new SystemDataContainerHolder(null));
       }
+
+      public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType, boolean createNullItemData)
+         throws RepositoryException
+      {
+         return null;
+      }
    }
 
    class Counter

Added: jcr/branches/1.12.x/patch/1.12.11-GA/JCR-1661/readme.txt
===================================================================
--- jcr/branches/1.12.x/patch/1.12.11-GA/JCR-1661/readme.txt	                        (rev 0)
+++ jcr/branches/1.12.x/patch/1.12.11-GA/JCR-1661/readme.txt	2011-10-20 12:10:12 UTC (rev 5074)
@@ -0,0 +1,68 @@
+Summary
+
+    * Status: TESTING: Regression during daily testing
+    * CCP Issue: N/A. Product Jira Issue: JCR-1661.
+    * Complexity: low
+
+The Proposal
+Problem description
+
+What is the problem to fix?
+During daily testing we have regressions on some of tests, detail: http://tests.exoplatform.org/JCR/1.12.10-GA/rev.4778/daily-performance-testing-results/jcr.core/index.html
+
+Fix description
+
+How is the problem fixed?
+    * For WorkspaceMoveTest and WorkspaceNodeUpdateTest: fixed by avoiding extra cache cleaning while running in cluster environment but with single node.
+    * For other tests: fixed by avoiding extra putting NullItemData instances to cache.
+
+Patch file: JCR-1661.patch
+
+Tests to perform
+
+Reproduction test
+
+    *  Daily testing
+
+Tests performed at DevLevel
+
+    * Functional testing, daily testing
+
+Tests performed at QA/Support Level
+*
+Documentation changes
+
+Documentation changes:
+
+    * None
+
+Configuration changes
+
+Configuration changes:
+
+    * None
+
+Will previous configuration continue to work?
+
+    * Yes
+
+Risks and impacts
+
+Can this bug fix have any side effects on current client projects?
+
+    * No
+
+Is there a performance risk/cost?
+
+    * No
+
+Validation (PM/Support/QA)
+
+PM Comment
+* Patch approved.
+
+Support Comment
+* Validated on behalf of Support.
+
+QA Feedbacks
+*



More information about the exo-jcr-commits mailing list