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 2016/08/19 06:59:37 UTC
svn commit: r1756871 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalEntryTest.java
Author: mreutegg
Date: Fri Aug 19 06:59:37 2016
New Revision: 1756871
URL: http://svn.apache.org/viewvc?rev=1756871&view=rev
Log:
OAK-4682: ConcurrentModificationException in JournalEntry.TreeNode
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalEntryTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalEntryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalEntryTest.java?rev=1756871&r1=1756870&r2=1756871&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalEntryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalEntryTest.java Fri Aug 19 06:59:37 2016
@@ -31,6 +31,7 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.commons.json.JsopTokenizer;
import org.apache.jackrabbit.oak.commons.sort.StringSort;
import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore;
+import org.junit.Ignore;
import org.junit.Test;
import static org.apache.jackrabbit.oak.plugins.document.Collection.JOURNAL;
@@ -217,6 +218,34 @@ public class JournalEntryTest {
assertEquals(r.getTimestamp(), entry.getRevisionTimestamp());
}
+ // OAK-4682
+ @Ignore
+ @Test
+ public void concurrentModification() throws Exception {
+ DocumentNodeStore store = new DocumentMK.Builder().getNodeStore();
+ try {
+ final JournalEntry entry = store.getCurrentJournalEntry();
+ Thread t = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ for (int i = 0; i < 100000; i++) {
+ entry.modified("/node-" + i);
+ }
+ }
+ });
+ t.start();
+ StringSort sort = JournalEntry.newSorter();
+ try {
+ entry.addTo(sort);
+ } finally {
+ sort.close();
+ }
+ t.join();
+ } finally {
+ store.dispose();
+ }
+ }
+
private static void addRandomPaths(java.util.Collection<String> paths) throws IOException {
paths.add("/");
Random random = new Random(42);