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);
     }
 }