[exo-jcr-commits] exo-jcr SVN: r4909 - in jcr/trunk/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
Wed Sep 14 03:17:23 EDT 2011
Author: dkuleshov
Date: 2011-09-14 03:17:22 -0400 (Wed, 14 Sep 2011)
New Revision: 4909
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
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/nodetype/ItemAutocreator.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.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/ShareableSupportedWorkspaceDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java
Log:
EXOJCR-1533: removed extra NullItemData creations
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/dataflow/ItemDataConsumer.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -71,6 +71,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/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -449,7 +449,7 @@
PropertyDefinitionDatas defs;
ItemImpl prevItem =
dataManager.getItem(parentNode.nodeData(), new QPathEntry(propertyName, 0), true,
- dataManager.isNew(parentNode.getIdentifier()), ItemType.PROPERTY);
+ dataManager.isNew(parentNode.getIdentifier()), ItemType.PROPERTY, false);
NodeTypeDataManager ntm = session.getWorkspace().getNodeTypesHolder();
NodeData parentData = (NodeData)parentNode.getData();
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -641,7 +641,7 @@
PropertyData prop =
(PropertyData)dataManager.getItemData(((NodeData)getData()), new QPathEntry(Constants.JCR_MIXINTYPES, 0),
- ItemType.PROPERTY);
+ ItemType.PROPERTY, false);
ItemState state;
if (prop != null)
@@ -1922,7 +1922,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
@@ -3061,13 +3061,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/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-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -237,12 +237,23 @@
*/
public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException
{
- return getItemData(parent, name, false, itemType);
+ return getItemData(parent, name, false, itemType, true);
}
- private ItemData getItemData(NodeData parent, QPathEntry name, boolean skipCheckInPersistence, ItemType itemType)
+ /**
+ * {@inheritDoc}
+ */
+ public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType, boolean createNullItemData)
throws RepositoryException
{
+ return getItemData(parent, name, false, itemType, createNullItemData);
+ }
+
+
+ private ItemData getItemData(NodeData parent, QPathEntry name, boolean skipCheckInPersistence, 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))
@@ -270,7 +281,7 @@
// 2. Try from txdatamanager
if (!(skipCheckInPersistence))
{
- data = transactionableManager.getItemData(parent, name, itemType);
+ data = transactionableManager.getItemData(parent, name, itemType, createNullItemData);
}
}
else if (!state.isDeleted())
@@ -364,6 +375,32 @@
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 = 0;
if (log.isDebugEnabled())
{
@@ -374,7 +411,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
{
@@ -405,9 +442,15 @@
public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool, boolean skipCheckInPersistence)
throws RepositoryException
{
- return getItem(parent, name, pool, skipCheckInPersistence, ItemType.UNKNOWN);
+ return getItem(parent, name, pool, skipCheckInPersistence, ItemType.UNKNOWN, true);
}
+ public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool, boolean skipCheckInPersistence,
+ ItemType itemType) throws RepositoryException
+ {
+ return getItem(parent, name, pool, skipCheckInPersistence, itemType, true);
+ }
+
/**
* Return Item by parent NodeDada and the name of searched item.
*
@@ -425,7 +468,7 @@
* @throws RepositoryException
*/
public ItemImpl getItem(NodeData parent, QPathEntry name, boolean pool, boolean skipCheckInPersistence,
- ItemType itemType) throws RepositoryException
+ ItemType itemType, boolean createNullItemData) throws RepositoryException
{
long start = 0;
if (log.isDebugEnabled())
@@ -437,7 +480,9 @@
ItemImpl item = null;
try
{
- return item = readItem(getItemData(parent, name, skipCheckInPersistence, itemType), parent, pool, true);
+ return item =
+ readItem(getItemData(parent, name, skipCheckInPersistence, itemType, createNullItemData), parent, pool,
+ true);
}
finally
{
@@ -2817,4 +2862,5 @@
return -i1.getData().getQPath().compareTo(i2.getData().getQPath());
}
}
+
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -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/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -108,12 +108,21 @@
*/
public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException
{
- return 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
+ {
+ return persistentManager.getItemData(parent, name, itemType, createNullItemData);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(String identifier) throws RepositoryException
{
return persistentManager.getItemData(identifier);
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 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -723,6 +723,16 @@
public ItemData getItemData(final NodeData parentData, final QPathEntry name, final ItemType itemType)
throws RepositoryException
{
+ return getItemData(parentData, name, itemType, true);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public ItemData getItemData(final NodeData parentData, final QPathEntry name, final ItemType itemType,
+ final boolean createNullItemData)
+ throws RepositoryException
+ {
if (cache.isEnabled())
{
// 1. Try from cache
@@ -745,7 +755,7 @@
{
public ItemData run() throws RepositoryException
{
- return getPersistedItemData(parentData, name, itemType);
+ return getPersistedItemData(parentData, name, itemType, createNullItemData);
}
});
}
@@ -1732,6 +1742,46 @@
}
/**
+ * Get persisted ItemData.
+ *
+ * @param parentData
+ * parent
+ * @param name
+ * Item name
+ * @param itemType
+ * item type
+ * @param createNullItemData
+ * indicates if nullItem should be created
+ * @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)
+ {
+ cache.put(data);
+ }
+ else if (createNullItemData)
+ {
+ if (itemType == ItemType.NODE || itemType == ItemType.UNKNOWN)
+ {
+ cache.put(new NullNodeData(parentData, name));
+ }
+ else
+ {
+ cache.put(new NullPropertyData(parentData, name));
+ }
+ }
+ }
+ return data;
+ }
+
+ /**
* Call
* {@link org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager#getItemData(java.lang.String)
* WorkspaceDataManager.getItemDataByIdentifier(java.lang.String)} and cache result if non null returned.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ShareableSupportedWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ShareableSupportedWorkspaceDataManager.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ShareableSupportedWorkspaceDataManager.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -108,12 +108,21 @@
*/
public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType) throws RepositoryException
{
- return 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
+ {
+ return persistentManager.getItemData(parent, name, itemType, createNullItemData);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public ItemData getItemData(String identifier) throws RepositoryException
{
return persistentManager.getItemData(identifier);
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/VersionableWorkspaceDataManager.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -183,15 +183,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/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/BufferedISPNCache.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -264,7 +264,8 @@
LOG.error("Unexpected object found by key " + key.toString() + ". Expected Set, but found:"
+ existingObject.getClass().getName());
}
- else if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL)
+ else if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL
+ && cache.getCacheManager().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
@@ -328,7 +329,8 @@
LOG.error("Unexpected object found by key " + key.toString() + ". Expected Map, but found:"
+ existingObject.getClass().getName());
}
- else if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL)
+ else if (!localMode && cache.getConfiguration().getCacheMode() != CacheMode.LOCAL
+ && cache.getCacheManager().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/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -1090,7 +1090,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
@@ -1129,7 +1130,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/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -120,6 +120,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/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -349,6 +349,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())
{
@@ -364,7 +373,7 @@
}
else
{
- return storageDataManager.getItemData(parentData, name, itemType);
+ return storageDataManager.getItemData(parentData, name, itemType, createNullItemData);
}
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/importing/BaseXmlImporter.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -226,7 +226,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/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java 2011-09-14 07:05:54 UTC (rev 4908)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestMultipleListenersNotifying.java 2011-09-14 07:17:22 UTC (rev 4909)
@@ -20,6 +20,10 @@
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.InvalidItemStateException;
@@ -48,6 +52,12 @@
{
super.save(new ChangesLogWrapper(changes));
}
+
+ public ItemData getItemData(NodeData parent, QPathEntry name, ItemType itemType, boolean createNullItemData)
+ throws RepositoryException
+ {
+ return null;
+ }
}
class Counter
More information about the exo-jcr-commits
mailing list