Author: mreutegg
Date: Mon Feb 20 11:14:13 2017
New Revision: 1783742

URL: http://svn.apache.org/viewvc?rev=1783742&view=rev
Log:
OAK-5651: java.lang.IllegalStateException logged when migrating Segment to 
Document

Implement fix and enable tests

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoaderTest.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalEntryTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java?rev=1783742&r1=1783741&r2=1783742&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java
 Mon Feb 20 11:14:13 2017
@@ -69,7 +69,7 @@ public final class JournalEntry extends
 
     private static final String CHANGE_SET = "_cs";
 
-    private static final String BRANCH_COMMITS = "_bc";
+    static final String BRANCH_COMMITS = "_bc";
 
     public static final String MODIFIED = "_modified";
 
@@ -393,6 +393,9 @@ public final class JournalEntry extends
     }
 
     void branchCommit(@Nonnull Iterable<Revision> revisions) {
+        if (!revisions.iterator().hasNext()) {
+            return;
+        }
         String branchCommits = (String) get(BRANCH_COMMITS);
         if (branchCommits == null) {
             branchCommits = "";
@@ -469,7 +472,9 @@ public final class JournalEntry extends
         String bc = (String) get(BRANCH_COMMITS);
         if (bc != null) {
             for (String id : bc.split(",")) {
-                ids.add(id);
+                if (id.length() != 0) {
+                    ids.add(id);
+                }
             }
         }
         return new Iterable<JournalEntry>() {

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoaderTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoaderTest.java?rev=1783742&r1=1783741&r2=1783742&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoaderTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoaderTest.java
 Mon Feb 20 11:14:13 2017
@@ -38,7 +38,6 @@ import org.apache.jackrabbit.oak.spi.sta
 import org.apache.jackrabbit.oak.stats.Clock;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -327,7 +326,6 @@ public class JournalDiffLoaderTest {
                 journalQueryCounter.get() > 0);
     }
 
-    @Ignore("OAK-5651")
     @Test
     public void emptyBranchCommit() throws Exception {
         DocumentNodeStore ns = builderProvider.newBuilder()

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=1783742&r1=1783741&r2=1783742&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
 Mon Feb 20 11:14:13 2017
@@ -32,7 +32,6 @@ 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;
@@ -357,7 +356,6 @@ public class JournalEntryTest {
         assertTrue("Incorrect hasChanges", entry.hasChanges());
     }
 
-    @Ignore("OAK-5651")
     @Test
     public void emptyBranchCommit() {
         DocumentStore store = new MemoryDocumentStore();
@@ -365,6 +363,7 @@ public class JournalEntryTest {
 
         entry.branchCommit(Collections.<Revision>emptyList());
         assertFalse(entry.getBranchCommits().iterator().hasNext());
+        assertNull(entry.get(JournalEntry.BRANCH_COMMITS));
     }
 
     private static void addRandomPaths(java.util.Collection<String> paths) 
throws IOException {


Reply via email to