Author: tripod
Date: Thu Dec 19 23:54:27 2013
New Revision: 1552460

URL: http://svn.apache.org/r1552460
Log:
OAK-1300 Removing a reference from a mv property destroys the reverse lookup 
from the remaining

also fixes:
- OAK-1299 Removing user from group also invalidates other members memberships

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditor.java
    jackrabbit/oak/trunk/oak-jcr/pom.xml
    
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditor.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditor.java?rev=1552460&r1=1552459&r2=1552460&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditor.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditor.java
 Thu Dec 19 23:54:27 2013
@@ -329,13 +329,13 @@ class ReferenceEditor extends DefaultEdi
             Set<String> add, Set<String> rm) {
         NodeBuilder index = child.child(name);
         Set<String> empty = of();
+        for (String p : rm) {
+            STORE.update(index, p, of(key), empty);
+        }
         for (String p : add) {
             // TODO do we still need to encode the values?
             STORE.update(index, p, empty, of(key));
         }
-        for (String p : rm) {
-            STORE.update(index, p, of(key), empty);
-        }
     }
 
     private static boolean check(NodeState definition, String name, String 
key) {

Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1552460&r1=1552459&r2=1552460&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Thu Dec 19 23:54:27 2013
@@ -49,7 +49,6 @@
       org.apache.jackrabbit.test.api.WorkspaceCopyTest#testCopyNodesLocked     
                        <!-- OAK-118 -->
       
org.apache.jackrabbit.test.api.WorkspaceMoveSameNameSibsTest#testMoveNodesOrderingSupportedByParent
 <!-- OAK-118 -->
       org.apache.jackrabbit.test.api.WorkspaceMoveTest#testMoveNodesLocked     
                        <!-- OAK-118 -->
-      org.apache.jackrabbit.oak.jcr.ReferencesTest#testMVRemoveReferences      
                        <!-- OAK-1300 -->
 
       <!-- Locking : not fully implemented -->
       org.apache.jackrabbit.test.api.lock.LockTest#testNodeLocked
@@ -121,7 +120,6 @@
 
       <!-- User Management -->
       
org.apache.jackrabbit.oak.jcr.security.user.RefreshTest#testAuthorizableGetProperty
            <!-- OAK-1124 -->
-      
org.apache.jackrabbit.oak.jcr.security.user.GroupTest#testMoveUserToOtherGroup  
               <!-- OAK-1299 -->
 
       <!-- Query -->
       
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestNameTestSomeNTWithSNS
          <!-- OAK-203 -->

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java?rev=1552460&r1=1552459&r2=1552460&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferencesTest.java
 Thu Dec 19 23:54:27 2013
@@ -245,7 +245,7 @@ public class ReferencesTest extends Abst
     }
 
     // OAK-1257
-    public void testMVAddAltering() throws RepositoryException {
+    public void testMVAddReferences() throws RepositoryException {
         Node ref0 = testRootNode.addNode(nodeName2, testNodeType);
         ref0.addMixin(mixReferenceable);
         Node ref1 = testRootNode.addNode(nodeName3, testNodeType);


Reply via email to