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 mr...@apache.org on 2014/02/25 13:28:43 UTC
svn commit: r1571665 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Author: mreutegg
Date: Tue Feb 25 12:28:42 2014
New Revision: 1571665
URL: http://svn.apache.org/r1571665
Log:
OAK-1467: Commit.rollback() may remove changes from other commit
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java?rev=1571665&r1=1571664&r2=1571665&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java Tue Feb 25 12:28:42 2014
@@ -408,7 +408,9 @@ public class Commit {
store.createOrUpdate(NODES, reverse);
}
for (UpdateOp op : newDocuments) {
- store.remove(NODES, op.id);
+ UpdateOp reverse = op.getReverseOperation();
+ NodeDocument.unsetLastRev(reverse, revision.getClusterId());
+ store.createOrUpdate(NODES, reverse);
}
UpdateOp removeCollision = new UpdateOp(commitRoot.getId(), false);
NodeDocument.removeCollision(removeCollision, revision);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1571665&r1=1571664&r2=1571665&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java Tue Feb 25 12:28:42 2014
@@ -172,7 +172,6 @@ public class DocumentNodeStoreTest {
store.dispose();
}
- @Ignore("OAK-1467")
@Test
public void rollback() throws Exception {
final Map<Thread, Semaphore> locks = Collections.synchronizedMap(
@@ -230,9 +229,11 @@ public class DocumentNodeStoreTest {
String id = Utils.getIdFromPath("/foo/node");
NodeDocument doc = docStore.find(Collection.NODES, id);
assertNotNull("document with id " + id + " does not exist", doc);
+ assertTrue(!doc.getLastRev().isEmpty());
id = Utils.getIdFromPath("/bar/node");
doc = docStore.find(Collection.NODES, id);
assertNotNull("document with id " + id + " does not exist", doc);
+ assertTrue(!doc.getLastRev().isEmpty());
mk.dispose();
}