You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2005/05/24 18:50:21 UTC
svn commit: r178205 - in
/incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core:
SessionImpl.java state/NodeState.java
Author: tripod
Date: Tue May 24 09:50:13 2005
New Revision: 178205
URL: http://svn.apache.org/viewcvs?rev=178205&view=rev
Log:
- optimize move operations
Modified:
incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/SessionImpl.java
incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/state/NodeState.java
Modified: incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/SessionImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/SessionImpl.java?rev=178205&r1=178204&r2=178205&view=diff
==============================================================================
--- incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/SessionImpl.java (original)
+++ incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/SessionImpl.java Tue May 24 09:50:13 2005
@@ -911,24 +911,21 @@
}
// check lock status
+
srcParentNode.checkLock();
destParentNode.checkLock();
+ // do move operation
+
String targetUUID = ((NodeState) targetNode.getItemState()).getUUID();
+ // add target to new parent
+ destParentNode.createChildNodeLink(destName.getName(), targetUUID);
+ // remove target from old parent
int index = srcName.getIndex();
if (index == 0) {
index = 1;
}
-
- if (srcParentNode.isSame(destParentNode)) {
- // do rename
- destParentNode.renameChildNodeLink(srcName.getName(), index, targetUUID, destName.getName());
- } else {
- // do move
- destParentNode.createChildNodeLink(destName.getName(), targetUUID);
- srcParentNode.removeChildNode(srcName.getName(), index);
- }
-
+ srcParentNode.removeChildNode(srcName.getName(), index);
// change definition of target if necessary
NodeDefinitionImpl oldTargetDef = (NodeDefinitionImpl) targetNode.getDefinition();
NodeDefId oldTargetDefId = oldTargetDef.unwrap().getId();
Modified: incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/state/NodeState.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/state/NodeState.java?rev=178205&r1=178204&r2=178205&view=diff
==============================================================================
--- incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/state/NodeState.java (original)
+++ incubator/jackrabbit/branches/ri-1.0/src/java/org/apache/jackrabbit/core/state/NodeState.java Tue May 24 09:50:13 2005
@@ -202,6 +202,9 @@
* @see #removeParentUUID
*/
public synchronized void addParentUUID(String uuid) {
+ if (parentUUIDs.isEmpty()) {
+ parentUUID = uuid;
+ }
parentUUIDs.add(uuid);
}
@@ -242,6 +245,11 @@
public synchronized void setParentUUIDs(List uuids) {
parentUUIDs.clear();
parentUUIDs.addAll(uuids);
+ if (!parentUUIDs.isEmpty()) {
+ parentUUID = (String) parentUUIDs.iterator().next();
+ } else {
+ parentUUID = null;
+ }
}
/**