Author: mreutegg
Date: Tue Mar 26 15:51:12 2013
New Revision: 1461193
URL: http://svn.apache.org/r1461193
Log:
OAK-619 Lock-free MongoMK implementation
- read pending branches in init()
Modified:
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/prototype/MongoMK.java
Modified:
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/prototype/MongoMK.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/prototype/MongoMK.java?rev=1461193&r1=1461192&r2=1461193&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/prototype/MongoMK.java
(original)
+++
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/prototype/MongoMK.java
Tue Mar 26 15:51:12 2013
@@ -201,6 +201,23 @@ public class MongoMK implements MicroKer
n = new Node("/", headRevision);
commit.addNode(n);
commit.applyToDocumentStore();
+ } else {
+ // initialize branchCommits
+ Map<String, Object> nodeMap = store.find(
+ DocumentStore.Collection.NODES, Utils.getIdFromPath("/"));
+ @SuppressWarnings("unchecked")
+ Map<String, String> valueMap = (Map<String, String>)
nodeMap.get(UpdateOp.REVISIONS);
+ if (valueMap != null) {
+ for (Map.Entry<String, String> commit : valueMap.entrySet()) {
+ if (!commit.getValue().equals("true")) {
+ Revision r = Revision.fromString(commit.getKey());
+ if (r.getClusterId() == clusterId) {
+ Revision b =
Revision.fromString(commit.getValue());
+ branchCommits.put(r, b);
+ }
+ }
+ }
+ }
}
}