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 al...@apache.org on 2014/07/30 11:39:53 UTC
svn commit: r1614596 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
Author: alexparvulescu
Date: Wed Jul 30 09:39:53 2014
New Revision: 1614596
URL: http://svn.apache.org/r1614596
Log:
OAK-2001 TarMk compaction can still cause repository growth
- prevented ConcurrentModificationException by wrapping in an synchronized block
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java?rev=1614596&r1=1614595&r2=1614596&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java Wed Jul 30 09:39:53 2014
@@ -356,14 +356,17 @@ public class FileStore implements Segmen
}
}
}
- // remove all obsolete tar generations
- Iterator<File> iterator = toBeRemoved.iterator();
- while (iterator.hasNext()) {
- File file = iterator.next();
- log.debug("TarMK GC: Attempting to remove old file {}", file);
- if (!file.exists() || file.delete()) {
- log.debug("TarMK GC: Removed old file {}", file);
- iterator.remove();
+ synchronized (this) {
+ // remove all obsolete tar generations
+ Iterator<File> iterator = toBeRemoved.iterator();
+ while (iterator.hasNext()) {
+ File file = iterator.next();
+ log.debug("TarMK GC: Attempting to remove old file {}",
+ file);
+ if (!file.exists() || file.delete()) {
+ log.debug("TarMK GC: Removed old file {}", file);
+ iterator.remove();
+ }
}
}
}