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 2006/05/02 17:43:37 UTC
svn commit: r398968 -
/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
Author: tripod
Date: Tue May 2 08:43:35 2006
New Revision: 398968
URL: http://svn.apache.org/viewcvs?rev=398968&view=rev
Log:
JCR-423 Node.restore() fails for existing non-versioned OPV=Version child nodes
Modified:
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewcvs/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java?rev=398968&r1=398967&r2=398968&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java Tue May 2 08:43:35 2006
@@ -3784,9 +3784,8 @@
while (iter.hasNext()) {
NodeImpl n = (NodeImpl) iter.nextNode();
if (!freeze.hasFrozenHistory(n.internalGetUUID())) {
- if (n.getDefinition().getOnParentVersion() == OnParentVersionAction.COPY
- || n.getDefinition().getOnParentVersion() == OnParentVersionAction.VERSION) {
- // only remove OPV=Copy or OPV=Version nodes
+ if (n.getDefinition().getOnParentVersion() == OnParentVersionAction.COPY) {
+ // only remove OPV=Copy nodes
n.internalRemove(true);
}
}
@@ -3826,18 +3825,18 @@
// check if representing versionable already exists somewhere
if (itemMgr.itemExists(nodeId)) {
NodeImpl n = session.getNodeById(nodeId);
- if (n.getParent().isSame(this)) {
- // so order at end
- // orderBefore(n.getName(), "");
- } else if (removeExisting) {
+ if (removeExisting) {
session.move(n.getPath(), getPath() + "/" + n.getName());
+ } else if (n.getParent().isSame(this)) {
+ n.internalRemove(true);
} else {
// since we delete the OPV=Copy children beforehand, all
// found nodes must be outside of this tree
throw new ItemExistsException("Unable to restore node, item already exists outside of restored tree: "
+ n.safeGetJCRPath());
}
- } else {
+ }
+ if (!itemMgr.itemExists(nodeId)) {
// get desired version from version selector
AbstractVersion v = (AbstractVersion) vsel.select(history);
NodeImpl node = addNode(child.getName(), v.getFrozenNode());