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 md...@apache.org on 2015/10/12 09:37:07 UTC
svn commit: r1708044 -
/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
Author: mduerig
Date: Mon Oct 12 07:37:07 2015
New Revision: 1708044
URL: http://svn.apache.org/viewvc?rev=1708044&view=rev
Log:
OAK-2507: Truncate journal.log after off line compaction
Truncate journal log to last and only revision after off-line compaction
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java?rev=1708044&r1=1708043&r2=1708044&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java Mon Oct 12 07:37:07 2015
@@ -29,6 +29,7 @@ import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.io.RandomAccessFile;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
@@ -104,6 +105,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy;
import org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy.CleanupType;
import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
+import org.apache.jackrabbit.oak.plugins.segment.file.JournalReader;
import org.apache.jackrabbit.oak.plugins.segment.standby.client.StandbyClient;
import org.apache.jackrabbit.oak.plugins.segment.standby.server.StandbyServer;
import org.apache.jackrabbit.oak.plugins.tika.TextExtractorMain;
@@ -517,6 +519,25 @@ public final class Main {
store = openFileStore(directory);
try {
store.cleanup();
+
+ String head;
+ File journal = new File(directory, "journal.log");
+ JournalReader journalReader = new JournalReader(journal);
+ try {
+ head = journalReader.iterator().next() + " root\n";
+ } finally {
+ journalReader.close();
+ }
+
+ RandomAccessFile journalFile = new RandomAccessFile(journal, "rw");
+ try {
+ System.out.println(" -> writing new " + journal.getName() + ": " + head);
+ journalFile.setLength(0);
+ journalFile.writeBytes(head);
+ journalFile.getChannel().force(false);
+ } finally {
+ journalFile.close();
+ }
} finally {
store.close();
}