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;
}