Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java =================================================================== --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java (revision 1241434) +++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java (working copy) @@ -364,7 +364,7 @@ // Get the local file revision from disk (upgrade; see JCR-1087) long localFileRevision = 0L; if (getRevision() != null) { - InstanceRevision currentFileRevision = new FileRevision(new File(getRevision())); + InstanceRevision currentFileRevision = new FileRevision(new File(getRevision()), false); localFileRevision = currentFileRevision.get(); currentFileRevision.close(); } Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java =================================================================== --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java (revision 1241434) +++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java (working copy) @@ -39,6 +39,11 @@ private final RandomAccessFile raf; /** + * Flag indicating whether to sync the file on every write. + */ + private final boolean sync; + + /** * Cached value. */ private long value; @@ -52,9 +57,13 @@ * Creates a new file based revision counter. * * @param file holding global counter + * @param sync whether to sync the file on every write + * * @throws JournalException if some error occurs */ - public FileRevision(File file) throws JournalException { + public FileRevision(File file, boolean sync) throws JournalException { + this.sync = sync; + try { if (!file.exists()) { file.createNewFile(); @@ -101,7 +110,9 @@ } raf.seek(0L); raf.writeLong(value); - raf.getFD().sync(); + if (sync) { + raf.getFD().sync(); + } this.value = value; } catch (IOException e) { throw new JournalException("I/O error occurred.", e); Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java =================================================================== --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java (revision 1241434) +++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java (working copy) @@ -247,7 +247,7 @@ * {@inheritDoc} */ public InstanceRevision getInstanceRevision() throws JournalException { - return new FileRevision(new File(getRevision())); + return new FileRevision(new File(getRevision()), false); } /**