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 2013/09/10 15:51:42 UTC
svn commit: r1521485 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/Utils.java
test/java/org/apache/jackrabbit/oak/plugins/mongomk/DocumentSplitTest.java
Author: mreutegg
Date: Tue Sep 10 13:51:41 2013
New Revision: 1521485
URL: http://svn.apache.org/r1521485
Log:
OAK-926: MongoMK: split documents when they are too large
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/Utils.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/DocumentSplitTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/Utils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/Utils.java?rev=1521485&r1=1521484&r2=1521485&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/Utils.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/Utils.java Tue Sep 10 13:51:41 2013
@@ -16,10 +16,12 @@
*/
package org.apache.jackrabbit.oak.plugins.mongomk.util;
+import java.util.Comparator;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import java.util.SortedMap;
import java.util.TreeMap;
import javax.annotation.Nonnull;
@@ -194,10 +196,16 @@ public class Utils {
public static <K> void deepCopyMap(Map<K, Object> source, Map<K, Object> target) {
for (Entry<K, Object> e : source.entrySet()) {
Object value = e.getValue();
+ Comparator<? super K> comparator = null;
+ if (value instanceof SortedMap) {
+ @SuppressWarnings("unchecked")
+ SortedMap<K, Object> map = (SortedMap<K, Object>) value;
+ comparator = map.comparator();
+ }
if (value instanceof Map<?, ?>) {
@SuppressWarnings("unchecked")
- Map<Object, Object> old = (Map<Object, Object>) value;
- Map<Object, Object> c = newMap();
+ Map<K, Object> old = (Map<K, Object>) value;
+ Map<K, Object> c = new TreeMap<K, Object>(comparator);
deepCopyMap(old, c);
value = c;
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/DocumentSplitTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/DocumentSplitTest.java?rev=1521485&r1=1521484&r2=1521485&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/DocumentSplitTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/DocumentSplitTest.java Tue Sep 10 13:51:41 2013
@@ -34,7 +34,6 @@ import static org.junit.Assert.assertTru
*/
public class DocumentSplitTest extends BaseMongoMKTest {
- @Ignore
@Test
public void splitRevisions() throws Exception {
DocumentStore store = mk.getDocumentStore();