Author: tomekr
Date: Tue Sep 24 13:58:28 2019
New Revision: 1867459

URL: http://svn.apache.org/viewvc?rev=1867459&view=rev
Log:
OAK-8640: Allow to only copy last journal entry in the SegmentStoreMigrator

Modified:
    
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java

Modified: 
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java?rev=1867459&r1=1867458&r2=1867459&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java
 Tue Sep 24 13:58:28 2019
@@ -22,6 +22,7 @@ import static org.apache.jackrabbit.oak.
 import com.microsoft.azure.storage.StorageException;
 import com.microsoft.azure.storage.blob.CloudBlobDirectory;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.jackrabbit.oak.commons.Buffer;
 import org.apache.jackrabbit.oak.segment.azure.AzurePersistence;
 import org.apache.jackrabbit.oak.segment.azure.tool.ToolUtils.SegmentStoreType;
@@ -97,22 +98,20 @@ public class SegmentStoreMigrator implem
             return;
         }
         List<String> journal = new ArrayList<>();
-        if (onlyLastJournalEntry) {
-            try (JournalFileReader reader = 
source.getJournalFile().openJournalReader()) {
-                String line = reader.readLine();
-                if (line != null) {
+
+        try (JournalFileReader reader = 
source.getJournalFile().openJournalReader()) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                if (StringUtils.isNotBlank(line)) {
                     journal.add(line);
                 }
-            }
-        } else {
-            try (JournalFileReader reader = 
source.getJournalFile().openJournalReader()) {
-                String line;
-                while ((line = reader.readLine()) != null) {
-                    journal.add(line);
+                if (!journal.isEmpty() && onlyLastJournalEntry) {
+                    break;
                 }
             }
-            Collections.reverse(journal);
         }
+        Collections.reverse(journal);
+
         try (JournalFileWriter writer = 
target.getJournalFile().openJournalWriter()) {
             writer.truncate();
             for (String line : journal) {
@@ -292,7 +291,7 @@ public class SegmentStoreMigrator implem
         }
 
         public Builder withOnlyLastJournalEntry() {
-            this.onlyLastJournalEntry = onlyLastJournalEntry;
+            this.onlyLastJournalEntry = true;
             return this;
         }
 


Reply via email to