You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2012/02/07 19:07:15 UTC

svn commit: r1241538 - /jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeLog.java

Author: mduerig
Date: Tue Feb  7 18:07:14 2012
New Revision: 1241538

URL: http://svn.apache.org/viewvc?rev=1241538&view=rev
Log:
Microkernel based prototype of JCR implementation (WIP)
- refine case 14' to detect invalid change logs. Correct comment

Modified:
    jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeLog.java

Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeLog.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeLog.java?rev=1241538&r1=1241537&r2=1241538&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeLog.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeLog.java Tue Feb  7 18:07:14 2012
@@ -200,7 +200,10 @@ public class ChangeLog {
       4'.  if s = NIL and q = NIL then m * n = -r. Otherwise if s = NIL then m, n do not commute.
       10'. illegal if p = NIL
       12'. if s = NIL then m * n = -r * -p
-      14'. illegal if p = NIL
+      14'. if p = NIL: does not commute if the parent of s is q. Illegal otherwise
+
+      The cases which are marked illegal cannot occur in valid change logs. That is, if such a
+      case occurred, the containing change log would be invalid.
      */
 
     /**
@@ -463,7 +466,13 @@ public class ChangeLog {
         else if (leq(m.to, n.to)) {  // q < s
             // See 14'.
             if (m.from == NIL) {
-                return false;
+                Path p = n.to.getParent();
+                if (p.equals(m.to)) {
+                    return false;
+                }
+                else {
+                    throw new IllegalArgumentException(m + ", " + n);
+                }
             }
             else {
                 ops.set(index, n.move(m.to, m.from));