Author: nzamosenchuk
Date: 2009-11-25 09:53:11 -0500 (Wed, 25 Nov 2009)
New Revision: 862
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java
Log:
EXOJCR-242: (refactoring) LockData is now removed on delete "jcr:lockIsDeep"
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java 2009-11-25
14:35:01 UTC (rev 861)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/JBossCacheWorkspaceDataManager.java 2009-11-25
14:53:11 UTC (rev 862)
@@ -25,6 +25,8 @@
import org.exoplatform.services.jcr.dataflow.LockPlainChangesLogImpl;
import org.exoplatform.services.jcr.dataflow.PlainChangesLog;
import org.exoplatform.services.jcr.dataflow.ReadOnlyThroughChanges;
+import org.exoplatform.services.jcr.datamodel.NodeData;
+import org.exoplatform.services.jcr.datamodel.PropertyData;
import org.exoplatform.services.jcr.datamodel.QPath;
import org.exoplatform.services.jcr.impl.Constants;
import org.exoplatform.services.jcr.impl.core.lock.LockData;
@@ -40,6 +42,7 @@
import java.util.List;
import java.util.Set;
+import javax.jcr.InvalidItemStateException;
import javax.jcr.RepositoryException;
/**
@@ -200,10 +203,6 @@
else if (itemState.isDeleted())
{
doDelete(data, conn);
- if (!data.isNode() &
data.getQName().equals(Constants.JCR_LOCKISDEEP))
- {
- conn.removeLockData(data.getIdentifier());
- }
}
else if (itemState.isRenamed())
{
@@ -238,6 +237,26 @@
notifySaveItems(changesLog);
}
+ @Override
+ protected void doDelete(TransientItemData item, WorkspaceStorageConnection con) throws
RepositoryException,
+ InvalidItemStateException
+ {
+ if (item.isNode())
+ {
+ con.delete((NodeData)item);
+ }
+ else
+ {
+ con.delete((PropertyData)item);
+ // if property JCR:LOCKISDEEP is removed then remove lockData also.
+ // This is the case, when locked node is deleted
+ if (item.getQName().equals(Constants.JCR_LOCKISDEEP))
+ {
+ con.removeLockData(item.getIdentifier());
+ }
+ }
+ }
+
/**
* Tell if the path is jcr:system descendant.
*
Show replies by date