You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2014/01/21 18:09:27 UTC
svn commit: r1560102 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java
Author: mreutegg
Date: Tue Jan 21 17:09:27 2014
New Revision: 1560102
URL: http://svn.apache.org/r1560102
Log:
OAK-1346: Restore of OPV copy child node may fail
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java?rev=1560102&r1=1560101&r2=1560102&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java Tue Jan 21 17:09:27 2014
@@ -318,7 +318,8 @@ class VersionableState {
dest.setProperty(JCR_PRIMARYTYPE,
frozen.getName(JCR_FROZENPRIMARYTYPE), Type.NAME);
String id = frozen.getProperty(JCR_FROZENUUID).getValue(Type.STRING);
- if (id.length() > 0) {
+ if (id.indexOf('/') == -1) {
+ // only restore jcr:uuid if id is in fact a uuid
dest.setProperty(JCR_UUID, id, Type.STRING);
}
if (frozen.hasProperty(JCR_FROZENMIXINTYPES)) {
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java?rev=1560102&r1=1560101&r2=1560102&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionTest.java Tue Jan 21 17:09:27 2014
@@ -86,17 +86,19 @@ public class VersionTest extends Abstrac
assertEquals(ntFrozenNode, frozenChild.getPrimaryNodeType().getName());
}
- // OAK-1009
+ // OAK-1009 & OAK-1346
public void testFrozenUUID() throws RepositoryException {
Node n = testRootNode.addNode(nodeName1, testNodeType);
n.addMixin(mixVersionable);
- Node child = n.addNode(nodeName2, ntUnstructured);
+ Node child = n.addNode(nodeName2, "nt:folder");
superuser.save();
VersionManager vMgr = superuser.getWorkspace().getVersionManager();
+ Version v = vMgr.checkpoint(n.getPath());
vMgr.checkpoint(n.getPath());
- Version v = vMgr.getBaseVersion(n.getPath());
- Node frozenChild = v.getFrozenNode().getNode(child.getName());
+ Version baseVersion = vMgr.getBaseVersion(n.getPath());
+ Node frozenChild = baseVersion.getFrozenNode().getNode(child.getName());
assertEquals(child.getIdentifier(),
frozenChild.getProperty(Property.JCR_FROZEN_UUID).getString());
+ vMgr.restore(v, true);
}
}