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 al...@apache.org on 2013/11/13 19:56:09 UTC

svn commit: r1541659 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditor.java

Author: alexparvulescu
Date: Wed Nov 13 18:56:08 2013
New Revision: 1541659

URL: http://svn.apache.org/r1541659
Log:
OAK-685 Enforce referential integrity for referenceable nodes
 - introduced the multiple value properties again
 - added the property name to the stored path to help with OAK-1137



Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditor.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=1541659&r1=1541658&r2=1541659&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 Wed Nov 13 18:56:08 2013
@@ -259,12 +259,12 @@ class ReferenceEditor extends DefaultEdi
     @Override
     public void propertyChanged(PropertyState before, PropertyState after) {
         if (before != null) {
-            if (before.getType() == REFERENCE /* || before.getType() == REFERENCES */ ) {
-                put(rmRefs, before.getValue(STRINGS), getPath());
+            if (before.getType() == REFERENCE || before.getType() == REFERENCES) {
+                put(rmRefs, before.getValue(STRINGS), concat(getPath(), before.getName()));
             }
             if (before.getType() == WEAKREFERENCE
-                    /* || before.getType() == WEAKREFERENCES */ ) {
-                put(rmWeakRefs, before.getValue(STRINGS), getPath());
+                    || before.getType() == WEAKREFERENCES) {
+                put(rmWeakRefs, before.getValue(STRINGS), concat(getPath(), before.getName()));
             }
             if (JCR_UUID.equals(before.getName())) {
                 // node remove + add -> changed uuid
@@ -275,12 +275,12 @@ class ReferenceEditor extends DefaultEdi
             }
         }
         if (after != null) {
-            if (after.getType() == REFERENCE /* || after.getType() == REFERENCES */ ) {
-                put(newRefs, after.getValue(STRINGS), getPath());
+            if (after.getType() == REFERENCE || after.getType() == REFERENCES) {
+                put(newRefs, after.getValue(STRINGS), concat(getPath(), after.getName()));
             }
             if (after.getType() == WEAKREFERENCE
-                    /* || after.getType() == WEAKREFERENCES */ ) {
-                put(newWeakRefs, after.getValue(STRINGS), getPath());
+                    || after.getType() == WEAKREFERENCES) {
+                put(newWeakRefs, after.getValue(STRINGS), concat(getPath(), after.getName()));
             }
         }
     }