jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mreut...@apache.org
Subject svn commit: r691181 - in /jackrabbit/trunk/jackrabbit-core/src: main/java/org/apache/jackrabbit/core/observation/ test/java/org/apache/jackrabbit/core/observation/
Date Tue, 02 Sep 2008 10:00:42 GMT
Author: mreutegg
Date: Tue Sep  2 03:00:42 2008
New Revision: 691181

URL: http://svn.apache.org/viewvc?rev=691181&view=rev
Log:
JCR-1728: Observation logs error when a node is moved in place

Added:
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/MoveInPlaceTest.java
  (with props)
Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/TestAll.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java?rev=691181&r1=691180&r2=691181&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
(original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
Tue Sep  2 03:00:42 2008
@@ -181,28 +181,24 @@
                         Set mixins = oldParent.getMixinTypeNames();
                         Path newPath = getPath(n.getNodeId(), hmgr);
                         Path oldPath = getZombiePath(n.getNodeId(), hmgr);
-                        if (!oldPath.equals(newPath)) {
-                            events.add(EventState.childNodeRemoved(oldParentId,
-                                    getParent(oldPath),
-                                    n.getNodeId(),
-                                    oldPath.getNameElement(),
-                                    oldParentNodeType.getQName(),
-                                    mixins,
-                                    session));
-
-                            NodeState newParent = (NodeState) changes.get(newParentId);
-                            NodeTypeImpl newParentNodeType = getNodeType(newParent, session);
-                            mixins = newParent.getMixinTypeNames();
-                            events.add(EventState.childNodeAdded(newParentId,
-                                    getParent(newPath),
-                                    n.getNodeId(),
-                                    newPath.getNameElement(),
-                                    newParentNodeType.getQName(),
-                                    mixins,
-                                    session));
-                        } else {
-                            log.error("Unable to calculate old path of moved node");
-                        }
+                        events.add(EventState.childNodeRemoved(oldParentId,
+                                getParent(oldPath),
+                                n.getNodeId(),
+                                oldPath.getNameElement(),
+                                oldParentNodeType.getQName(),
+                                mixins,
+                                session));
+
+                        NodeState newParent = (NodeState) changes.get(newParentId);
+                        NodeTypeImpl newParentNodeType = getNodeType(newParent, session);
+                        mixins = newParent.getMixinTypeNames();
+                        events.add(EventState.childNodeAdded(newParentId,
+                                getParent(newPath),
+                                n.getNodeId(),
+                                newPath.getNameElement(),
+                                newParentNodeType.getQName(),
+                                mixins,
+                                session));
                     } else {
                         // a moved node always has a modified parent node
                         NodeState parent = null;

Added: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/MoveInPlaceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/MoveInPlaceTest.java?rev=691181&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/MoveInPlaceTest.java
(added)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/MoveInPlaceTest.java
Tue Sep  2 03:00:42 2008
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.observation;
+
+import org.apache.jackrabbit.core.query.AbstractQueryTest;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+
+/**
+ * <code>MoveInPlaceTest</code> is a test case for issue JCR-1728
+ */
+public class MoveInPlaceTest extends AbstractQueryTest {
+
+    public void testMove() throws RepositoryException {
+        Node parent = testRootNode.addNode("parent");
+        Node child = parent.addNode("child");
+        testRootNode.save();
+
+        Node tmp = testRootNode.addNode("tmp");
+        superuser.move(child.getPath(), tmp.getPath() + "/" + child.getName());
+        parent.remove();
+        superuser.move(tmp.getPath(), testRootNode.getPath() + "/parent");
+        testRootNode.save();
+
+        String stmt = testPath + "/parent/child";
+        NodeIterator nodes = executeQuery(stmt).getNodes();
+        assertTrue("Result must not be empty", nodes.hasNext());
+        assertEquals("Wrong result", testRoot + "/parent/child", nodes.nextNode().getPath());
+        assertFalse("More results than expected", nodes.hasNext());
+    }
+}

Propchange: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/MoveInPlaceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/TestAll.java?rev=691181&r1=691180&r2=691181&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/TestAll.java
(original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/observation/TestAll.java
Tue Sep  2 03:00:42 2008
@@ -39,6 +39,7 @@
         suite.addTestSuite(ReorderTest.class);
         suite.addTestSuite(MixinTest.class);
         suite.addTestSuite(VersionEventsTest.class);
+        suite.addTestSuite(MoveInPlaceTest.class);
 
         return suite;
     }



Mime
View raw message