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 16:39:46 UTC

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

Author: alexparvulescu
Date: Wed Nov 13 15:39:46 2013
New Revision: 1541559

URL: http://svn.apache.org/r1541559
Log:
OAK-685 Enforce referential integrity for referenceable nodes
 - better multiple valued properties support

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=1541559&r1=1541558&r2=1541559&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 15:39:46 2013
@@ -21,9 +21,11 @@ import static com.google.common.collect.
 import static org.apache.jackrabbit.JcrConstants.JCR_UUID;
 import static org.apache.jackrabbit.oak.api.CommitFailedException.INTEGRITY;
 import static org.apache.jackrabbit.oak.api.Type.REFERENCE;
+import static org.apache.jackrabbit.oak.api.Type.REFERENCES;
 import static org.apache.jackrabbit.oak.api.Type.STRING;
 import static org.apache.jackrabbit.oak.api.Type.STRINGS;
 import static org.apache.jackrabbit.oak.api.Type.WEAKREFERENCE;
+import static org.apache.jackrabbit.oak.api.Type.WEAKREFERENCES;
 import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
 import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
 import static org.apache.jackrabbit.oak.plugins.index.reference.NodeReferenceConstants.REF_NAME;
@@ -257,10 +259,11 @@ class ReferenceEditor extends DefaultEdi
     @Override
     public void propertyChanged(PropertyState before, PropertyState after) {
         if (before != null) {
-            if (before.getType() == REFERENCE) {
+            if (before.getType() == REFERENCE || before.getType() == REFERENCES) {
                 put(rmRefs, before.getValue(STRINGS), getPath());
             }
-            if (before.getType() == WEAKREFERENCE) {
+            if (before.getType() == WEAKREFERENCE
+                    || before.getType() == WEAKREFERENCES) {
                 put(rmWeakRefs, before.getValue(STRINGS), getPath());
             }
             if (JCR_UUID.equals(before.getName())) {
@@ -272,10 +275,11 @@ class ReferenceEditor extends DefaultEdi
             }
         }
         if (after != null) {
-            if (after.getType() == REFERENCE) {
+            if (after.getType() == REFERENCE || after.getType() == REFERENCES) {
                 put(newRefs, after.getValue(STRINGS), getPath());
             }
-            if (after.getType() == WEAKREFERENCE) {
+            if (after.getType() == WEAKREFERENCE
+                    || after.getType() == WEAKREFERENCES) {
                 put(newWeakRefs, after.getValue(STRINGS), getPath());
             }
         }